Dockerfile部署java项目

本文展示了如何使用Dockerfile进行多阶段构建,包括从git克隆代码,使用maven打包,以及创建运行时环境。接着,详细说明了如何打包镜像、部署容器,并且解释了如何保持容器在后台运行。最后,提到了使用docker命令来管理镜像和容器。
摘要由CSDN通过智能技术生成

一、dockerfile展示

将DockerFile 配置文件放到 maven项目目录内,和pom.xml同级。

# 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来在容器启动时启动服务。

二、打包镜像

自动检测的文件名为Dockerfile ,使用-f 指定dockerfile文件路径。

docker build -f dockerfile -t kanban:0.0.1

三、部署容器

docker run -d -it -p 9965:9962 kanban:0.0.1

要想退出 container 时,让 container 仍然在后台运行着,可以使用“docker exec -it”命令。每次使用这个命令进入container,当退出container后,container仍然在后台运行,命令使用方法如下:

docker exec -it goofy_almeida /bin/bash

goofy_almeida:container的名称

/bin/bash:在container中启动一个bash shell

-i: 保持标准输入打开,默认为false;

-t: 是否分配一个伪终端,默认为false;

这样输入“exit”或者按键“Ctrl + C”退出container时,这个container仍然在后台运行,通过:

docker ps

就可以查找到。

docker学习

构建镜像

# 命令:(注意最后的 .)
# 该命令会在当前目录下寻找Dockerfile文件,并自动完成构建。
# -t webapp 表示给构建完成的镜像取一个名字。
docker build -t webapp .

docker images  # 查看镜像信息

运行容器

# 命令:
docker run -d -p 8090:8080 webapp
-d # 表示后台运行容器,并返回容器ID
-p # 使用端口映射,8090:8080表示将容器的8080端口映射到主机的8090端口。

docker ps -a  # 查看运行的所有容器

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值