【问题标题】:Why not found, while it does exist?为什么没有找到,虽然它确实存在?
【发布时间】:2016-06-01 20:57:44
【问题描述】:

在 Windows 10 上,当我运行时:

$ docker build .

我在控制台中收到此错误:

 RUN /provision/provision.sh
 ---> Running in e66928c3c893
/bin/sh: 1: /provision/provision.sh: not found

我的文件夹文件:

/Dockerfile
/provision
/provision/provision.sh

那么为什么我得到/bin/sh: 1: /provision/provision.sh: not found 错误,虽然/provision/provision.sh 存在?

编辑

我试过了: 添加规定/规定

我试过了:

COPY provision /provision

没用..

Step 7 : COPY provision /provision
 ---> c5d07de6948d
Removing intermediate container 85768981a7f0
Step 8 : RUN /provision/provision.sh
 ---> Running in 8426a8526514
/bin/sh: 1: /provision/provision.sh: not found
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.
The command '/bin/sh -c /provision/provision.sh' returned a non-zero code: 127

【问题讨论】:

    标签: docker


    【解决方案1】:

    provision/provision.sh 存在于您的docker build context 中(在您的主机上),但您需要先将其copy (COPY) 到图像中:

    COPY provision/provision.sh /provision/provision.sh
    # or
    COPY provision /provision/
    RUN chmod 755 /provision/provision.sh && \
        /provision/provision.sh
    

    如文档中所述:

    如果<src> 是目录,则复制目录的全部内容,包括文件系统元数据。

    注意:目录本身并没有被复制,只是它的内容。

    RUN 将在一个中间容器中执行一个命令,该容器使用编译到该行的 Dockerfile 内容启动。
    这意味着它在容器的上下文中执行某些操作,而不是在主机的上下文中。

    【讨论】:

    【解决方案2】:

    就我而言,provision.sh 文件是一个 dos 行结尾文件。我需要使用 Unix 换行符重新保存文件。

    我发现这两个答案对解决问题很有帮助:

    RUN rm /bin/sh && ln -s /bin/bash /bin/sh 
    

    Using the RUN instruction in a Dockerfile with 'source' does not work

    还有这个:

    ./configure : /bin/sh^M : bad interpreter

    【讨论】:

    • 很高兴您找到了根本原因。 +1。下次,如果它实际上不是答案,请不要接受答案;)
    • 谢谢@VonC,下次会做的:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多