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
WhereDockerfileTomcat
负责将 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 脚本来自动化该过程。如果你想让我把它贴在这里,请告诉我。