kri*_*iss 7 docker docker-compose
我有以下 docker-compose 文件
version: '3'
services:
serviceA:
image: my/serviceA
container_name: serviceA
serviceB:
image: my/serviceB
container_name: serviceB
Run Code Online (Sandbox Code Playgroud)
我想在 serviceA 容器退出后运行 serviceB 容器。有没有办法等待serviceA退出然后运行容器serviceB?
Docker Compose 不支持这一点。
服务 B 等待服务 A 启动有一个或多或少的标准技巧。如果一个服务有办法查看另一个服务(例如,服务 A 正在运行一个在私有 Docker 网络上可见的网络服务),那么服务 B 可以等待 A 启动,然后等待 B 停止,然后执行其工作。不过,您将无法看到 A 是否成功退出。
如果您愿意为服务 B 提供主机上潜在的不受限制的 root 访问权限,您可以将 Docker 套接字安装到其容器中,然后它可以监视服务 A 退出。纠正启动 A、看到它退出然后启动 B 的某个协调器服务 C 可能会更干净。
(如果你在 Kubernetes 中,它有一个预停止钩子,可以在服务 A 退出之前运行脚本,但这是一个相当重量级的答案。)
归档时间: |
|
查看次数: |
3841 次 |
最近记录: |