我想知道您如何使用图片。在构建映像时添加20MB文件几乎是即时的。可以让您以某种方式在部署期间构建映像,就像AWS为您提供Dockerfile一样。
无论如何,我认为这取决于您的部署方式。如果要在自己周围移动图像,则添加.war文件和展开的WAR目录之间不会有太大区别。我想说什么对您来说方便。但是,如果您有时从Docker有时从.war(可能会错过Docker的某些方面)运行应用程序,那么您最好一直使用.war。
如果要部署到类似AWS Elastic
Beanstalk(从存储库中提取映像的东西)之类的东西,而该对象需要Dockerfile或Dockerrun.aws.json文件,则将映像与实际部署的对象分开是有意义的(或到目前为止,这对我来说是有意义的)。这样可以使容器保持不变,而更新应用程序只需将.jar
/ .war文件复制到正确的位置(这也可能会遗漏Docker的部分内容;)。
我一直在做的是在Docker
Hub上创建基础映像,然后使用Dockerrun.aws.json文件映射到我的应用程序中。这样,AWS无需构建我的映像,只需将其拉出即可。这样可以更快,更省钱($)。但这确实将我的应用程序与映像分开,这在某些情况下可能会使部署复杂化。但是,由于我的映像非常稳定,因此通常只将.jar文件,Dockerrun.aws.json文件和Shell脚本捆绑到.zip中,然后将其上传到AWS。我认为很容易。
我的Dockerfile非常简单,实际上是我的Spring Boot应用程序所需的全部:
FROM java:8VOLUME /tmpVOLUME /appEXPOSE 8080ENTRYPOINT ["sh","/app/app.sh"]
您可以执行类似的操作,并使用-
v选项等将卷映射到您的应用程序,环境设置等。顺便说一下,此映像在Docker Hub上可用。



