繁体   English   中英

docker-compose无法加载run.sh

[英]docker-compose can't load run.sh

我有一个运行shell脚本的docker-compose.yml文件,并且一直运行良好,直到突然之间它开始因以下原因而失败:

ERROR: for pol_app_1  Cannot start service app: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"run.sh\": executable file not found in $PATH": unknown

ERROR: for app  Cannot start service app: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"run.sh\": executable file not found in $PATH": unknown

(我见过类似的问题,但他们没有解决这个特定问题)

我一直在做的只是对其使用的docker映像所做的更改,但是即使我将映像更改为centos:latest docker-compose仍然会因上述错误而失败。

我的docker-compose.yml文件:

  version: '3.5'

  services:
    app:
      image: paulhollyer/phoenix:1.4.9
      ports:
        - 4000:4000
      volumes:
        - .:/app

      depends_on:
        - db

      command: run.sh

    db:
      image: paulhollyer/postgres:12
      command: 'postgres -c "max_connections=200"'
      volumes:
        - type: volume
          source: postgres-data
          target: /var/lib/postgresql/data
          volume:
            nocopy: true
      restart: always
      environment:
        POSTGRES_PASSWORD: "postgres"
        POSTGRES_USER: "postgres"
        POSTGRES_DB: "pol_dev"

  volumes:
    postgres-data:

run.sh在项目根目录中的docker-compose.yml旁边。

有谁知道为什么找不到run.sh 我会无意间导致该怎么办?

谢谢

您必须根据其在容器中的位置进行引用。 由于该文件位于当前主机目录中,并且您要添加的卷.:/app将是/app/run.sh

command: /app/run.sh

请注意避免奇怪的问题:如果/app恰好是拉出图像的WORKDIR ,则command: ./run.sh也可以,但是要小心。 例如,在这种情况下, /app已经有一些文件,并且您的映射会将当前主机目录安装在它们之上,从而使它们不可访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM