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 方式接入容器
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!