docker jar镜像打包

发布于:2025-03-14 ⋅ 阅读:(21) ⋅ 点赞:(0)

本文的目的,实现docker打jar包发布镜像到容器中。给出了Dockerfile的例子和发布的脚本。

目录结构

脚本执行自动打包和发布

run.sh

脚本作用:关闭容器,删除容器,删除原始镜像,打包镜像,发布运行服务

echo 'docker stop store-server  '
docker stop store-server

echo 'docker rm  store-server'
docker rm  store-server


echo 'rmi images ...'
docker rmi  wdfimagetest


echo 'start images ...'
docker build -t wdfimagetest .


echo 'run server :docker run --name store-server  -d -p 80:80  wdfimagetest:latest'
docker run --name store-server  -d -p 8080:80  wdfimagetest:latest

linux系统在增加执行权限 chmod +x run.sh

Dockerfile

# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER WDF <123@qq.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# Copy 是复制文件到容器。注意以根目录为默认层级,注意相对路径
COPY store-server-0.2.jar store-server-0.2.jar

# 将jar包添加到容器中并更名为app.jar
ADD store-server-0.2.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
EXPOSE 80
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar", "--server.port=80", "> /log/app.log"]

踩坑:

1. Dockerfile 的f是小写,如果大写会出错

2. 设置端口 (-p 7777:8888)    7777是映射到外部的端口,8888是内部的端口,特别容易反了。已经踩过几次坑

详细的命令请参考:Docker学习笔记——小白版_全部 icmp(ipv4) -1 -1-CSDN博客