找不到文件,但出现在目录中

时间:2019-04-30 18:18:45

标签: docker windows-10 docker-build

我正在尝试运行docker build命令来设置容器。当我运行它时,找不到我需要的文件。我收到此错误

/bin/sh: 1: ./downloadScript: not found
The command '/bin/sh -c ./downloadScript' returned a non-zero code: 127

我在脚本运行之前运行了ls -la,它出现了。

drwxr-xr-x 1 root root 4096 Apr 30 18:05 .
drwxr-xr-x 1 root root 4096 Apr 30 18:05 ..
-rwxr-xr-x 1 root root  714 Apr 29 18:20 downloadScript
drwxr-xr-x 4 root root 4096 Apr 30 18:05 gradleProject

我尝试了几件事

  • chmod 777的文件和目录

  • cp文件,chmod为新文件(也无法找到该新文件)

  • 重置docker凭据

我当前的脚本:

...
WORKDIR /dir1
RUN ls -la # For manual verification
RUN ./downloadScript
...

Docker输出

Sending build context to Docker daemon  120.3kB
Step 1/17 : FROM openjdk:8-slim as builder
 ---> e2581abdea18
Step 2/17 : WORKDIR /dir1
 ---> Using cache
 ---> 4ef289b22b45
Step 3/17 : ADD WCE_Docker/res /dir1
 ---> Using cache
 ---> 3d757ec6caba
Step 4/17 : ADD /GradleProject/ /dir1/gradleProject/
 ---> Using cache
 ---> 7e46cc77290d
Step 5/17 : WORKDIR /dir1
 ---> Using cache
 ---> fe7570221d31
Step 6/17 : RUN ls -la
 ---> Using cache
 ---> 019ef7d640da
Step 7/17 : RUN ./downloadScript
 ---> Running in 9870fd1e3af3
/bin/sh: 1: ./downloadScript: not found
The command '/bin/sh -c ./downloadScript' returned a non-zero code: 127

它可以在Mac和Ubuntu上正常运行,但不能在Windows 10上运行。

更新

我手动设置了容器,并尝试运行脚本,并收到了稍微不同的错误。

root@835516a24a7f:/dir# ./downloadScript
bash: ./downloadScript: /bin/bash^M: bad interpreter: No such file or directory

我发现这是基于DOS的行尾。我将修复该问题,然后发布结果。

更新结果

运行dos2unix downloadScript,它可以正常运行。问题是DOS行结束。

0 个答案:

没有答案