首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker撰写错误-“等待-it.sh:没有这样的文件或目录”

Docker撰写错误-“等待-it.sh:没有这样的文件或目录”
EN

Stack Overflow用户
提问于 2018-02-28 04:13:10
回答 1查看 12.1K关注 0票数 5

我有下面的Docker文件,我正在尝试使用wait-for-it.sh,以便在Kafka可用之后控制中心出现

代码语言:javascript
复制
  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-组合时,我会得到以下错误:

无法启动服务控制中心: OCI运行时创建失败: container_linux.go:296:启动容器进程导致"exec:\“./等待-for-it.sh\”:stat ./等待-for-it.sh:没有这样的文件或目录“:未知

我在Windows 10上,使用和PowerShell。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-28 05:23:17

只有当您使用具有./wait-for-it.sh的图像时,它才能工作。您可以创建您自己的Dockerfile,该文件扩展了confluentinc/cp-enterprise-control-center,并为start命令设置了包装脚本。

您可以使用docker版本2完成类似的任务,这是对kafka容器和depends_on的健康检查。

我不认为这在撰写文件版本3中有效。

在控制中心部分是这样的:

代码语言:javascript
复制
depends_on:
  kafka:
    condition: service_healthy

卡夫卡部分中这样的内容:(不知道这个卷曲命令是否会正确地检查卡夫卡。可能有更好的命令)

代码语言:javascript
复制
healthcheck:
  test: ["CMD", "curl", "-f", "http://localhost:9092"]
  interval: 1m30s
  timeout: 10s
  retries: 3
  start_period: 40s

(来自https://docs.docker.com/compose/compose-file/compose-file-v2 )

然后也许这个在最上面

代码语言:javascript
复制
version: '2.3'

我想他们说编写文件版本3的某个地方实际上是用于坞群的,这就是为什么它不支持这个特性,而且如果您不使用docker群,您可以继续使用版本2。

..。

如果等待另一个容器启动就是您想要做的事情,那么以上就是全部。on in docker-compose Version 3?解释说,这可能不再是推荐的方法,因为它不会处理容器重新启动。

我想这取决于你的船坞是为了测试还是为了生产。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49021851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档