[英]Can Docker Autonomously Restart Containers and Commit Changes with New Image Tag?
[英]Restart Docker Container (Automatically) when Image changes in Portainer(?)
我有一个 java WAR 文件,它是一个 Image (Docker) 并且正在一个 Tomcat (Docker) 容器内启动。 由于编码发生变化,WAR 也会发生变化。 我想做以下事情:
我也在使用Portainer。 是否有一些我可以执行/运行的命令系列,以便项目 #4 和项目 #5 可以自动运行(无需人工干预)? 有什么办法可以做到这一点吗?
TIA
docker-compose可以对此有所帮助。 您可以为您的应用程序创建一个 yml 文件,并根据需要使用 docker compose cli 启动新容器。 例如,我有以下 yml 文件的基于 tomcat/mongo 的应用程序:
version: '3'
services:
mongodb:
image: mongo
network_mode: host
tomcat:
build:
context: ./app
dockerfile: DockerfileTomcat
network_mode: host
depends_on:
- mongodb
文件夹布局为:
├── docker-compose.yml
└── app
├── DockerfileTomcat
└── app.war
DockerfileTomcat
负责在 tomcat 容器中复制 war 文件,如下所示:
FROM tomcat:8.5-jre8
RUN rm -rf /usr/local/tomcat/webapps/*
COPY app.war /usr/local/tomcat/webapps/app.war
为了启动您的应用程序,您需要在包含docker-compose.yml
的目录中运行以下命令:
docker-compose up --build
每次只需将新的 war 文件复制到 app.war 上并运行上面的命令。 它将创建基本映像并启动更新的容器。
如果这不是您要找的东西,您可以编写一个 BASH 脚本来自动化该过程。 如果你想让我把它贴在这里,请告诉我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.