首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新启动码头容器(自动)时,形象变化的维护者(?)

问重新启动码头容器(自动)时,形象变化的维护者(?)
EN

Stack Overflow用户
提问于 2017-05-10 13:03:53
回答 1查看 3.3K关注 0票数 0

我有一个java WAR文件,它属于Image (Docker),正在Tomcat (Docker)容器中启动。由于编码的变化,战争也会发生变化。我想做以下几点:

  1. 将java代码更新更改为Git
  2. 创建一个WAR文件(从刚刚推到Git的代码)
  3. 创建使用新WAR文件的新映像(Docker)
  4. 停止所有旧容器(运行旧映像)
  5. 重新启动容器(将使用新映像)

我也在使用维护者。是否有一系列可以执行/运行的命令,以便可以自动运行第4项和第5项(而不需要人工干预)?有什么办法可以做到这一点吗?

提亚

EN

回答 1

Stack Overflow用户

发布于 2017-05-10 13:58:28

码头工可能会对此有所帮助。您可以为应用程序创建一个yml文件,并根据需要使用来拆分新的容器。例如,基于tomcat/mongo的应用程序具有以下yml文件:

代码语言:javascript
复制
version: '3'

services:
  mongodb:
    image: mongo
    network_mode: host
  tomcat:
    build: 
      context: ./app
      dockerfile: DockerfileTomcat
    network_mode: host
    depends_on:
     - mongodb

文件夹布局如下:

代码语言:javascript
复制
├── docker-compose.yml
└── app
    ├── DockerfileTomcat
    └── app.war

其中,DockerfileTomcat负责将tomcat容器中的war文件复制为:

代码语言:javascript
复制
FROM tomcat:8.5-jre8

RUN rm -rf /usr/local/tomcat/webapps/*

COPY app.war /usr/local/tomcat/webapps/app.war

为了启动应用程序,需要在包含docker-compose.yml的目录中运行以下命令

代码语言:javascript
复制
docker-compose up --build

只需每次通过app.war复制新的war文件,并运行上面的命令。它将创建基本映像并启动更新的容器。

如果这不是您要寻找的东西,您可以编写一个BASH脚本来自动化这个过程。如果你想让我把它寄到这里,请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43893355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档