当前位置: 首页 > 知识库问答 >
问题:

文件未绑定安装到docker-compose

安毅
2023-03-14

我正在运行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-compose -f docker-compose.test.yaml up -d

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
ERROR: Encountered errors while bringing up the project.

我错过了什么?

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

▶ 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=/

此外,测试仪的服务配置与本项目完全相同,运行良好。

关于权限问题:

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

共有2个答案

韦安怡
2023-03-14

看起来它找不到“在$PATH中的可执行文件”

那么,让我们试着在<代码>上设置可执行权限/ci/等待。sh文件:

$ chmod +x ./ci/wait-for-it.sh
钱经赋
2023-03-14

错误消息很容易解释-等待它。sh不在$PATH上。

您需要将命令添加到$PATH或将命令更改为

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

另请参阅此问题的公认答案,了解为什么/usr/local/bin可能不在路径中。

 类似资料:
  • 问题内容: 我在Windows Home上使用docker-toolbox。我能够运行jekyll-serv Web服务器图像来查看浏览器上的默认页面,但是当我尝试在VS Code上编辑文件时,刷新浏览器后看不到更改。 知道为什么刷新后看不到更改吗? 复制步骤: 首先,我将git将此存储库克隆到了我的库中(可以在“ cmder”控制台上查看文件)。 然后,我可以使用以下命令运行该图像: 而且我可以

  • 问题内容: 我通过运行以下命令在centos 7上安装了docker, 注意:helloworld正常运行,没有问题。 但是,当我尝试运行docker-compose(docker- compose.yml存在且有效)时,它仅在Centos上给我错误(Windows版本对于docker-compose文件运行良好) 问题答案: 您还需要安装Docker Compose。请参阅手册。这是您需要执行的

  • 我有以下Dockerfile,基本图像为: 但是,我无法找到原因,因为每个目录似乎都存在。此外,如果我在bash中手动运行for循环,那么所有插件都已正确安装。。。 我进一步注意到,若我将插件安装在根目录中,插件的安装是有效的,如下所示: 然而,这是错误的地方,因为它们必须放在目录$JENKINS_HOME/plugins 为什么我不能安装插件在?

  • 我有一个laravel/php docker图像,我将其更新为php 8.1-我现在正试图返回到我们的项目版本7.3,但不会工作。 这是我的YAML 这是我的文件 我已经删除了docker缓存 但是我确实在运行时在构建中看到“59bf1c3509f3已经存在”。完成后,我拥有最新版本的PHP 8.13 那么,它可能是我没有清理的其他地方的另一个缓存吗?或者如何强制安装PHP 7.2到7.3

  • 首先,让我声明我不是Linux用户中最有道德的,所以对我来说...下面是我所采取的所有步骤的简要说明。最终的问题/问题是,我似乎不可能下载一个合适的docker-compose安装。 null null “第1行:not:未找到命令”。 docker-compose文件的大小似乎只有9KB。因为这就是我每次使用上面提到的docker-compose安装序列时得到的结果。 这个问题在这里得到了解决:

  • 本文向大家介绍aurelia 绑定到文件输入,包括了aurelia 绑定到文件输入的使用技巧和注意事项,需要的朋友参考一下 示例