在docker容器中重新部署spring-boot应用程序?

时间:2017-02-02 09:47:09

标签: java spring docker spring-boot

我有一个spring-boot项目,我想自动在容器中重新部署我的jar。 怎么做正确? 到目前为止,我所看到的只是这样。这是正确的方法吗?

# cd /home/jdev; 
# sudo docker stop ca_spring_boot;
# sudo docker rm ca_spring_boot;  
# sudo docker rmi ca_app_image; 
# sudo docker build -t ca_app_image .;
# sudo docker run -d -p 8888:8080 --name ca_spring_boot ca_app_image

我的Dockerfile

FROM java:8
VOLUME /tmp
EXPOSE 8080
ADD docker-storage/jenkins/workspace/CA/build/libs/ca-1.0.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Dspring.profiles.active=container","-jar","/app.jar"]

感谢。

2 个答案:

答案 0 :(得分:6)

你可以装载一个卷并将你的app.jar放在那里。所以你不需要重建图像,只需重新启动容器即可。

Dockerfile

FROM java:8
ENTRYPOINT [ "sh", "-c", "java -jar /mnt/app.jar" ]

将app.jar放入/ docker / spring /

构建并运行:

docker build -t spring_test .
docker run -d -v /docker/spring/:/mnt -p 12384:8080 --name spring_test_running spring_test

如果您更新弹簧应用程序,您只需执行以下操作:

docker restart spring_test_running

答案 1 :(得分:1)

之前的答案很好。但是每次要测试代码时都需要重新启动容器。但我们可以避免这个问题。只需使用Spring dev tool 并按上述方式挂载目标目录。