Cách Dockerfile dự án backend java
Server ( nơi để source code):
vi Dockerfile
## build stage ##
Google gõ: maven docker image with java 8 alpine
//
FROM maven:3.5.3-jdk-8-alpine as build
WORKDIR /app
COPY ..
RUN mvn install –DskipTests=true
## run stage ##
//Google gõ: java docker image version 8
//Tìm với aws hub, tags
FROM amazoncorretto:8u402-alpine-jre
WORKDIR /run
COPY --from=build /app/target/shoe-ShoppingCart-0.0.1-SNAPSHOT.jar /run/shoe-ShoppingCart-0.0.1-SNAPSHOT.jar
EXPOSE 8080
ENTRYPOINT java –jar /run/shoe-ShoppingCart-0.0.1-SNAPSHOT.jar
//
docker build –t shoeshop:v1
docker images // sẽ có images vừa build
docker run --name shoeshop –dp 8888:8080 shoeshop:v1
docker ps –a
vào chromr gõ: ip:8888 sẽ ra trang shoeshop
// tự tạo image riêng từ alpine
cp Dockerfile Dockerfile-v2
Google gõ: alpine docker image
//
FROM maven:3.5.3-jdk-8-alpine as build
WORKDIR /app
COPY ..
RUN mvn install –DskipTests=true
## run stage ##
FROM alpine:3.19
RUN apk add openjdk8 // như api install apk8
WORKDIR /run
COPY --from=build /app/target/shoe-ShoppingCart-0.0.1-SNAPSHOT.jar /run/shoe-ShoppingCart-0.0.1-SNAPSHOT.jar
EXPOSE 8080
ENTRYPOINT java –jar /run/shoe-ShoppingCart-0.0.1-SNAPSHOT.jar
//
docker build –t shoeshop:v2 –f Dockerfile-v2 .
docker run --name shoeshop-v2 –dp 9999:8080 shoeshop:v2
docker ps –a
docker images
vào chromr gõ: ip:9999 sẽ ra trang shoeshop
nâng cấp dockerfile với chạy user khác
cp Dockerfile-v2 Dockerfile-v3
//
FROM maven:3.5.3-jdk-8-alpine as build
WORKDIR /app
COPY ..
RUN mvn install –DskipTests=true
## run stage ##
FROM alpine:3.19
RUN adduser –D shoeshop
RUN apk add openjdk8 // như api install apk8
WORKDIR /run
COPY --from=build /app/target/shoe-ShoppingCart-0.0.1-SNAPSHOT.jar /run/shoe-ShoppingCart-0.0.1-SNAPSHOT.jar
RUN chown –R shoeshop:shoeshop /run
USER shoeshop
EXPOSE 8080
ENTRYPOINT java –jar /run/shoe-ShoppingCart-0.0.1-SNAPSHOT.jar
//
docker build –t shoeshop:v3 –f Dockerfile-v3 .
docker images
docker run --name shoeshop-v3 –dp 7777:8080 shoeshop:v3
docker ps –a
docker logs shoeshop-v3
vào chromr gõ: ip:7777 sẽ ra trang shoeshop và sẽ có hiện logs
docker exec –it shoeshop-v3 sh // user -v3 này là shoeshop
ls –l
ps –ef|grep shoe
cat Dockerfile-v3