我有一个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放在那里.因此,您无需重建映像,只需重新启动容器即可.
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
如果您更新Spring应用程序,您只需:
docker restart spring_test_running