未绑定到docker compose的文件

未绑定到docker compose的文件,docker,docker-compose,Docker,Docker Compose,我正在运行一个docker compose测试;我的堆栈中执行实际测试的部分是以下服务 tester: image: tutum/curl:latest volumes: - ./ci/wait-for-it.sh:/usr/local/bin/wait-for-it.sh - ./webhooks:/app/webhooks depends_on: - sut command: ["wait-for-it.sh&

我正在运行一个
docker compose
测试;我的堆栈中执行实际测试的部分是以下服务

  tester:
    image: tutum/curl:latest
    volumes:
      - ./ci/wait-for-it.sh:/usr/local/bin/wait-for-it.sh
      - ./webhooks:/app/webhooks
    depends_on:
      - sut
    command: ["wait-for-it.sh", "sut:8080", "-t", "240", "--", "sh", "pytest /app/webhooks"]
命令失败,如下所示:

ERROR: for 0114c9206690_alerta-_tester_1  Cannot start service tester: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"wait-for-it.sh\": executable file not found in $PATH": unknown

ERROR: for tester  Cannot start service tester: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"wait-for-it.sh\": executable file not found in $PATH": unknown
正在装入的文件不存在:

▶ ls docker-compose.test.yaml
docker-compose.test.yaml

Workspace/systems-utils/  alerta_dev_infra ✗                                                                         1d ⚑ ◒
▶ ls ./ci/wait-for-it.sh
./ci/wait-for-it.sh
更重要的是,当尝试将挂载绑定到一个不存在的文件时,我没有得到与挂载相关的错误,而是得到了与上面相同的错误

  tester:
    image: tutum/curl:latest
    volumes:
      - ./ci/foofile.sh:/usr/local/bin/wait-for-it.sh
      - ./webhooks:/app/webhooks
    depends_on:
      - sut
    command: ["wait-for-it.sh", "sut:8080", "-t", "240", "--", "sh", "pytest /app/webhooks"]
我错过了什么

编辑:关于提到的
路径
问题,这里是:

▶ docker run -it tutum/curl:latest printenv
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=1f3090676fa0
TERM=xterm
HOME=/
更重要的是,
tester
服务配置与项目中的完全相同,运行非常完美

关于权限问题:

Workspace/systems-utils/alerta-workable  alerta_dev_infra ✗                                                                        1d ⚑ ◒  ⍉
▶ ls -al ./ci/wait-for-it.sh
-rwxr-xr-x  1 pkaramol  staff   5.1K Sep  6 22:02 ./ci/wait-for-it.sh

错误消息非常简单-
等待它。sh
不在$PATH上

您需要将
/usr/local/bin
添加到$PATH或将命令更改为

command: ["/usr/local/bin/wait-for-it.sh", "sut:8080", "-t", "240", "--", "sh", "pytest /app/webhooks"]

另请参阅对此的公认答案,以了解
/usr/local/bin
可能不在路径中的原因。

似乎无法在$path中找到“可执行文件”

因此,让我们尝试在
/ci/wait it.sh
文件上设置可执行权限:

$ chmod +x ./ci/wait-for-it.sh

我已经更改了文件的权限,但仍然出现相同的错误up@pkaramol能否更新docker compose文件以显示其版本?
$ chmod +x ./ci/wait-for-it.sh