在Docker容器中重新部署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"] 

谢谢。

你可以挂载一个卷,并把你的app.jar在那里。 所以你不需要重build图像,你只需重新启动容器。

Dockerfile

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

把你的app.jar放在/ docker / spring /

构build并运行:

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

如果你更新你的spring应用程序,你只需要:

 docker restart spring_test_running 

以前的答案是好的。 但是每当你想testing你的代码时,都需要重启容器。 但是我们可以避免这个问题。 只需使用Spring开发工具并按上述方法挂载目标目录即可。