zoo*_*oes 2 docker docker-compose
我有以下docker compose文件,并且尝试使用“ wait-for-it.sh”,以便在kafka代理可用后启动控制中心
control-center:
image: confluentinc/cp-enterprise-control-center
hostname: control-center
restart: always
depends_on:
- zookeeper
- kafka
- schema_registry
- connect
**command: ["./wait-for-it.sh", "kafka:9092"]**
当我执行docker-compose up时出现以下错误。
无法启动服务控制中心:OCI运行时创建失败:container_linux.go:296:启动容器进程导致“ exec:\”。/wait-for-it.sh \”:stat ./wait-for-it.sh:没有此类文件或目录”:未知
我在Windows 10上,将docker用于Windows和Powershell。
./wait-for-it.sh
仅当您使用具有图像的图像时,该图像才起作用。您可以创建自己的Dockerfile,该文件可以扩展confluentinc/cp-enterprise-control-center
并放入start命令的包装器脚本中。
您可以使用docker compose yaml版本2,对kafka容器的运行状况检查和depends_on来完成类似的操作。
我认为这不适用于撰写文件版本3。
控制中心部分中的内容如下:
depends_on:
kafka:
condition: service_healthy
Run Code Online (Sandbox Code Playgroud)
kafka部分中的内容如下:(不知道该curl命令是否可以正确检查kafka。可能会有更好的命令)
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9092"]
interval: 1m30s
timeout: 10s
retries: 3
start_period: 40s
Run Code Online (Sandbox Code Playgroud)
(来自https://docs.docker.com/compose/compose-file/compose-file-v2)
然后也许在顶部
version: '2.3'
Run Code Online (Sandbox Code Playgroud)
我认为他们说某处组成文件版本3确实适用于docker swarm,这就是为什么它不支持此功能的原因,并且如果您不使用docker swarm,则可以坚持使用版本2。
...
如果您要等待其他容器启动,那么以上就是全部。 在docker-compose版本3中,depends_on条件形式的替代方案是什么?解释说这可能不再是推荐的处理方式,因为它无法处理容器重启。
我想这取决于您的Docker撰写设置是用于测试还是用于生产。
归档时间: |
|
查看次数: |
4109 次 |
最近记录: |