springboot项目打成jar包部署到docker。
1. 编写Dockerfile 文件
FROM java:8
VOLUME /tmp
ADD swstd-admin.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
文件解释:
VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。该步骤是可选的,
如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录
项目的 jar 文件作为 “app.jar” 添加到容器的
ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/urandom” 作为 Entropy Source
2. 把Dockerfile和ja包放在同一个目录
3. 执行build
docker build -t swstd .
4.编译好之后 run
docker run --name swstd -d -p 8097:8097 swstd
--name 指定镜像名称
5. 更新jar 之后 重新编译 ,先删除停掉的镜像容器
docker image prune -a
docker image prune -a -f #-f强制,不需要确认