dockerfile打包和部署Java项目
1. dockerfile展示
注意,这里是将DockerFile 配置文件放到了maven项目目录内,和pom.xml同级目录。
自动检测的文件名为Dockerfile
,使用-f
指定dockerfile文件路径
# Download code
FROM bitnami/git:2 AS git
RUN mkdir -p /home/app/src
RUN git -c http.sslVerify=false -C /home/app/src clone -b local https://github.com/test.git
#
# Build & package stage
#
FROM maven:3.8.1-jdk-11-slim AS build
COPY --from=git /home/app/src /home/app/src
RUN mvn -X -f /home/app/src/websit/pom.xml clean package -Dmaven.test.skip=true clean package -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ignore.validity.dates=true -Dspring.cloud.nacos.username=only_read -Dspring.cloud.nacos.password=nacos
#
# Runtime eviroment
#
FROM openjdk:11-jre-slim
COPY --from=build /home/app/src/websit/demo.jar /usr/local/lib/demo.jar
EXPOSE 9090
ENTRYPOINT ["java","-Duser.timezone=Asia/Shanghai","-jar","/usr/local/lib/demo.jar"]
这是一个多步骤的dockerfile,第一步git下载代码,第二步使用maven进行打包,第三步将运行时环境准备好,并设置命令java -jar ***.jar
来在容器启动时启动服务。
2. 新建镜像
docker build [OPTIONS] PATH | URL | -·
docker build -f dockerfile -t kanban:0.0.1 .
也可以直接从代码仓拉去dockerfile
docker build --no-cache -f demo/demo.dockerfile https://github.com/CICD.git
Name,shorthand | default | description |
---|---|---|
--build-arg | Set build-time variables | |
--file, -f |
Name of the Dockerfile (Default is 'PATH/Dockerfile') | |
--memory, -m |
Memory limit | |
--rm | true | Remove intermediate containers after a successful build |
--tag, -t |
Name and optionally a tag in the 'name:tag' format |
3. 部署容器
docker run -d -it -p 9965:9962 kanban:0.0.1
去掉-d可以用来测试,但是退出时会关闭容器。
-i
: 保持标准输入打开,默认为false;
-t
: 是否分配一个伪终端,默认为false;
docker exec -it 594 /bin/bash
ssh 方式接入容器