我希望尽可能最简单地部署到生产环境,但我们仍然在努力解决这个问题。
如果我要使用docker进行制作,那么将Docker镜像与我的应用程序可部署的一起会很好,但我不确定它是不是很好的方法。
我有几个问题:
我已经看到了这样做的方法,但我不太喜欢它们,即部署到Tomcat docker镜像,创建已捆绑应用程序的Tomcat镜像或使用主机系统卷。我喜欢安装“CD”之类的东西。我想用其他方法评估我的想法,谈论运行它的正确工具可能是其他问题。
答案 0 :(得分:1)
当我每次在新版本的图像中替换文件时,层系统不会膨胀吗?
不,因为你可以clean up dangling images
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
将数据库脚本和迁移工具作为此映像的一部分是否是个好主意?
是的,如果您的启动脚本知道是否需要应用它们。
我不太喜欢它们,即部署到Tomcat docker镜像,创建已绑定应用程序的Tomcat镜像或使用主机系统卷。
如果您的数据量容器与应用程序是分开的,那应该不是问题。
来自the discussion,OP补充道:
使用具有不同图像名称的
docker create --name <container_name> <image_name>
可以保留容器名称,我可以运行具有相同卷的Tomcat容器吗?
docker run -it --rm -p 8888:8080 --volumes-from <container_name> <image_name>
这就是想法,但是如果已经有一个具有该名称的创建数据容器,它将无法工作。
如果其中没有持久数据,可以将数据容器停靠,并使用相同的名称重新创建它。
如果存在持久性数据,则最好通过临时安装数据容器的中间(docker run
)容器复制新更新的数据。