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 终止了进程。
我正在 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 终止了进程。