Docker 与一个终止容器组合

Docker Compose with one Terminating Container

我正在 docker 组合设置一个数据库容器、一个应用程序容器和一个用必要数据预加载数据库的容器。

我想用 docker-compose up 启动所有容器,而预加载容器在完成后终止它与 exit 0 一起工作。

但是终止这个容器会取消完整的设置并显示以下消息:

composesetup_load_1 exited with code 0
Gracefully stopping... (press Ctrl+C again to force)
Stopping composesetup_app_1...
Stopping composesetup_db_1...

有没有办法在一个 docker-compose 设置中拥有多个具有不同生命周期的容器?如果是,如何?

我现在的解决方法是通过将 tail -f /dev/null 添加到入口点脚本的末尾来保留预加载容器 运行。这会保留进程 运行,而实际上什么也没有发生。

docker-compose up -d 处使用 -d option 将 运行 进程处于分离模式。这避免了使用 Ctrl+C 终止服务并因此停止容器的需要。

注意:我假设您从您分享的消息“Gracefully stopping... (press Ctrl+C again to force)”中使用 Ctrl+C 终止了进程。