【问题标题】:Cannot start service app: oci runtime error - executable file not found in $PATH无法启动服务应用程序:oci 运行时错误 - 在 $PATH 中找不到可执行文件
【发布时间】:2017-02-21 18:51:50
【问题描述】:

我在运行 docker-compose 时收到以下错误:

Cannot start service app: oci runtime error: container_linux.go:247: starting container process caused "exec: \"script.sh\": executable file not found in $PATH"
ERROR: Encountered errors while bringing up the project.

我的 docker-compose.yml

version: '2.0'

services:
  app:
    build: app
    volumes:
      - C:\Users\svirl\Documents\workspace\bgs-web:/var/www/html/:rw

app 文件夹中我有

Dockerfile

FROM php:5.6-apache
WORKDIR /var/www/html/

ADD script.sh /var/www/html
RUN chmod +x /var/www/html/script.sh
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
ENTRYPOINT ["script.sh"]

在同一个文件夹中的 script.sh

#!/bin/bash
composer install

有什么我遗漏的吗?

【问题讨论】:

    标签: bash docker docker-compose dockerfile


    【解决方案1】:

    入口点的 exec 语法(带有 json)需要二进制文件的完整路径,或者 /var/www/html 需要添加到路径中。将 Dockerfile 更新为以下内容:

    FROM php:5.6-apache
    WORKDIR /var/www/html/
    
    ADD script.sh /var/www/html
    RUN chmod +x /var/www/html/script.sh
    RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
    ENTRYPOINT ["/var/www/html/script.sh"]
    

    【讨论】:

    • 很抱歉,现在我收到了ERROR: for app Cannot start service app: oci runtime error: container_linux.go:247: starting container process caused "exec: \"/var/www/html/script.sh\": stat /var/www/html/script.sh: no such file or directory",但文件在那儿,我在 docker-compose 上有 RUN ls -la
    • 包括你的 docker-compose.yml。您很可能正在尝试在 /var/www/html 路径中的某个位置安装卷。
    • 您需要在您的主机上包含您的 script.sh 并以映射到容器中的方式设置执行位。将 script.sh 移动到映像中不会被卷安装替换的其他位置可能会更容易。
    • 我选择了第二种方式,错误在构建时消失了,但是当我启动容器时,我得到:standard_init_linux.go:178: exec user process caused "no such file or directory"FROM php:5.6-apache WORKDIR /var/www/html/ ADD script.sh /var/www RUN chmod +x /var/www/script.sh RUN ls -la /var/www RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer ENTRYPOINT ["/var/www/script.sh"]
    • 这是 Windows 结局。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2018-06-08
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    • 2022-08-10
    • 2018-11-18
    • 2020-12-15
    相关资源
    最近更新 更多