我有一个相对简单的dockerfile
FROM python:3.6.5-alpine
COPY somebinary /usr/local/bin/
COPY install.sh /install.sh
RUN /install.sh
二进制文件被复制得很好(当我运行容器进行检查时)但是脚本似乎没有被复制,因此当我尝试运行它时,我得到:
Step 4/5 : COPY install.sh /install.sh
---> 38ecc6dbad13
Step 5/5 : RUN /install.sh
---> Running in 0b06962d6e1b
/bin/sh: /install.sh: not found
The command '/bin/sh -c /install.sh' returned a non-zero code: 127
我制作的任何其他测试文件都会出现同样的情况,运行图像时它们不可用。其他人已成功运行完全相同的脚本,所以我怀疑这可能与我在Windows上通过Git Bash运行docker的事实有关?这可能是权限吗?
e:我去尝试运行powershell并得到了同样的错误,所以也许git bash是一个红鲱鱼
答案 0 :(得分:4)
您的install.sh脚本似乎有^ M个字符 尝试将install.sh保存为unix格式。 dos2unix
使用notepad ++或sublime或任何其他支持将行尾从Windows转换为UNIX格式的编辑器。