把Java程序部署到本地Docker
一:clean && install程序
install之后会在target中生成jar包
二:准备三个文件
(1)其中Dockerfile主要起到配置作用:
# 基础镜像
FROM openjdk:17-jdk-slim
# 作者
MAINTAINER "××××"
# 配置
ENV PARAMS=""
# 时区
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 添加应用
ADD target/*****.jar /*****.jar
## 在镜像运行为容器后执行的命令
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /*****.jar $PARAMS"]
(2)执行build.sh的命令
docker build -f "F:\work\...\Dockerfile" -t ×××/你想要的名字(想要在Docker中image的名字) .
其中 Dockerfile就是第一步的,这里可以写绝对路径。
请注意:该命令最后一个.不要删除!(Docker 会将这个路径下的所有文件和目录打包发送给 Docker 引擎,只有这个上下文中的文件才能被 Dockerfile 访问。)
这里需要注意的是在Dockerfile中的ADD这一行 target/*****.jar 这个jar包的路径是相对路径!不如你如果写 ADD F:/work/.../*****.jar会被 Docker 解释为 ./F:/work/.../*****.jar
,这显然是不存在的路径。
这里如果出现错误jdk什么不能下载:可以试试在docker desktop的设置中->Docker Engine中把
"buildkit":改为false
执行之后就可以在本地的Docker看到你的程序出现了(打马赛克部分)
(3)执行start.sh命令
windows用户把他写成一行 可以在cmd中执行
docker run -p 8080:8080 \
--name ***** \
-d ×××/*****
运行之后 不用在IDEA中启动程序可以使用了服务了。。。