多阶构建
项目一
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2J79TCC3-1678660799362)(C:\Users\JosenWinter\AppData\Roaming\Typora\typora-user-images\image-20221031220909912.png)]
手动构建:
# 启动mvn构建的容器
[root@localhost ~]# docker run --rm -ti srinivasansekar/javamvn bash
#拷贝代码
root@b58544a7d122:/home# mkdir /opt/springboot-app
root@b58544a7d122:/home# cd /opt/springboot-app
root@b58544a7d122:/opt/springboot-app# git clone --depth=1 https://gitee.com/agagin/springboot-app.git
root@b58544a7d122:/opt/springboot-app# mv springboot-app/* ./
root@b58544a7d122:/opt/springboot-app# rm -rf springboot-app/
#把代码构建成jar包
root@b58544a7d122:/opt/springboot-app# mvn clean package -DskipTests=true
原始构建:
[root@localhost 2023]# mkdir demo&&cd demo
[root@localhost demo]# git clone --depth=1 https://gitee.com/agagin/springboot-app.git
[root@localhost demo]# cd springboot-app
[root@localhost springboot-app]# pwd
/2023/demo/springboot-app
[root@localhost springboot-app]# ls
ansible deploy.sh Dockerfile Dockerfile.multi jmeter pom.xml robot src
[root@localhost springboot-app]# cat Dockerfile
FROM srinivasansekar/javamvn
WORKDIR /opt/springboot-app
COPY . .
RUN mvn clean package -DskipTests=true
CMD [ "sh", "-c", "java -jar /opt/springboot-app/target/sample.jar" ]
[root@localhost springboot-app]# docker build . -t springboot-app:v1 -f Dockerfile
Sending build context to Docker daemon 155.6kB
Step 1/5 : FROM srinivasansekar/javamvn
---> 1179797364cc
Step 2/5 : WORKDIR /opt/springboot-app
---> Using cache
---> 0e4ce71d6861
Step 3/5 : COPY . .
---> 3f88b94c4cbb
Step 4/5 : RUN mvn clean package -DskipTests=true
---> Running in afd8b2d9ef10
[INFO] Scanning for projects...
Downloading: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/1.5.9.RELEASE/spring-boot-starter-parent-1.5.9.RELEASE.pom
...
多阶构建:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VeSPEJPa-1678660799364)(C:\Users\JosenWinter\AppData\Roaming\Typora\typora-user-images\image-20221101170314682.p