在Docker映像中部署WAR文件的正确方法

扬·弗拉基米尔·莫斯特尔

在Docker容器中部署Java项目的Docker方法是什么?

我是否将战争复制到webapps中:

FROM jetty:9.2.10
MAINTAINER Me "[email protected]"
ADD ./target/*.war /var/lib/jetty/webapps/ROOT.war

还是我拿爆炸的战争文件:

FROM jetty:9.2.10
MAINTAINER Me "[email protected]"
ADD ./target/app-0.1.0.BUILD-SNAPSHOT /var/lib/jetty/webapps/ROOT

通常,如果它是一个普通的容器,则将部署密封的war文件,但是对于docker,这意味着每次您进行较小的更改时都会推送10-20MB的文件,而添加展开的war只会推动差异-.class文件已经改变。

部署爆炸式战争而不是战争档案有不利之处吗?

目的

我想知道您如何使用图片。构建映像时添加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:8
VOLUME /tmp
VOLUME /app
EXPOSE 8080
ENTRYPOINT ["sh","/app/app.sh"]

您可以做类似的事情,并使用-v选项等将卷映射到您的应用程序,环境设置等。顺便说一句,此映像在Docker Hub上可用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 Docker 容器中部署 WAR 文件

来自分类Dev

如何在docker容器的tomcat 7中部署war文件

来自分类Dev

在Tomcat中部署.war

来自分类Dev

在tomcat中部署WAR

来自分类Dev

在grizzly服务器中部署war文件

来自分类Dev

如何在Tomcat中部署新的WAR文件

来自分类Dev

在grizzly服务器中部署war文件

来自分类Dev

使用WAR文件在Tomcat服务器中部署Grails应用失败

来自分类Dev

通过命令提示符在Tomcat中部署War文件

来自分类Dev

无法通过在JBoss7.1中部署.war文件来访问URL

来自分类Dev

.war文件是否具有要在容器中部署的所有依赖项jar?

来自分类Dev

如何从 tomcat 服务器中部署的 WAR 文件中获取完整 URL

来自分类Dev

什么是更新docker映像的正确方法

来自分类Dev

如何将.war文件正确部署到OpenShift?

来自分类Dev

如何将.war文件正确部署到OpenShift?

来自分类Dev

在单独的 VM 中部署 Jhipster Registry 的配置文件中的正确语法

来自分类Dev

在openshift中部署修改后的Jenkins映像失败

来自分类Dev

使用AzureDevops在Azure Kubernetes服务(AKS)中部署容器映像

来自分类Dev

如何在 kubernetes pod 中部署 hyperkube 映像?

来自分类Dev

在Openshift中的tomcat中部署Spring MVC Web应用程序.war文件会出现空白页

来自分类Dev

使用Ansible部署Docker映像

来自分类Dev

在AWS中部署和运行Docker

来自分类Dev

在 Container/Kubernetes/Docker 中部署 Chef

来自分类Dev

如何使用Puppet在Jboss中部署EAR / WAR

来自分类Dev

针对WAR中部署的本地EJB的WildFly JNDI查找

来自分类Dev

在Microsoft Azure Web App中部署WAR FILE

来自分类Dev

在Tomcat中部署Spring-Boot WAR时崩溃

来自分类Dev

针对WAR中部署的本地EJB的WildFly JNDI查找

来自分类Dev

在OpenShift Origin上删除未使用的Docker映像的正确方法

Related 相关文章

  1. 1

    在 Docker 容器中部署 WAR 文件

  2. 2

    如何在docker容器的tomcat 7中部署war文件

  3. 3

    在Tomcat中部署.war

  4. 4

    在tomcat中部署WAR

  5. 5

    在grizzly服务器中部署war文件

  6. 6

    如何在Tomcat中部署新的WAR文件

  7. 7

    在grizzly服务器中部署war文件

  8. 8

    使用WAR文件在Tomcat服务器中部署Grails应用失败

  9. 9

    通过命令提示符在Tomcat中部署War文件

  10. 10

    无法通过在JBoss7.1中部署.war文件来访问URL

  11. 11

    .war文件是否具有要在容器中部署的所有依赖项jar?

  12. 12

    如何从 tomcat 服务器中部署的 WAR 文件中获取完整 URL

  13. 13

    什么是更新docker映像的正确方法

  14. 14

    如何将.war文件正确部署到OpenShift?

  15. 15

    如何将.war文件正确部署到OpenShift?

  16. 16

    在单独的 VM 中部署 Jhipster Registry 的配置文件中的正确语法

  17. 17

    在openshift中部署修改后的Jenkins映像失败

  18. 18

    使用AzureDevops在Azure Kubernetes服务(AKS)中部署容器映像

  19. 19

    如何在 kubernetes pod 中部署 hyperkube 映像?

  20. 20

    在Openshift中的tomcat中部署Spring MVC Web应用程序.war文件会出现空白页

  21. 21

    使用Ansible部署Docker映像

  22. 22

    在AWS中部署和运行Docker

  23. 23

    在 Container/Kubernetes/Docker 中部署 Chef

  24. 24

    如何使用Puppet在Jboss中部署EAR / WAR

  25. 25

    针对WAR中部署的本地EJB的WildFly JNDI查找

  26. 26

    在Microsoft Azure Web App中部署WAR FILE

  27. 27

    在Tomcat中部署Spring-Boot WAR时崩溃

  28. 28

    针对WAR中部署的本地EJB的WildFly JNDI查找

  29. 29

    在OpenShift Origin上删除未使用的Docker映像的正确方法

热门标签

归档