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官方文档

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 方式接入容器