【发布时间】:2017-10-09 00:21:22
【问题描述】:
我有兴趣使用wait-for-it 让 Docker-Compose 中的一项服务等待另一项服务,使用基于 Alpine Linux 发行版的映像。
但是,如果我克隆 wait-for-it 存储库并将以下 Dockerfile 添加到其中,
FROM alpine
RUN apk --update add bash
COPY wait-for-it.sh wait-for-it.sh
CMD ["./wait-for-it.sh", "www.google.com:80"]
然后我使用docker build --tag waitforit . 后跟docker run waitforit 构建它,但我收到以下错误消息:
timeout: can't execute '15': No such file or directory
wait-for-it.sh: timeout occurred after waiting 15 seconds for www.google.com:80
相比之下,这是我在 (Ubuntu 16.04 LTS) 计算机上运行此命令时看到的:
wait-for-it.sh: waiting 15 seconds for www.google.com:80
wait-for-it.sh: www.google.com:80 is available after 0 seconds
似乎 bash 脚本无法在 Alpine 容器中运行,因为它在我的 Ubuntu 本地计算机上运行。我该如何解决这个问题?
【问题讨论】:
-
wait-for-it.sh的可执行文件是什么?看它的第一行。 #!/bin/bash 还是 sh?
-
您的 shell 脚本似乎包含错误。请粘贴脚本