Файл не найден, но появляется в каталоге - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь запустить команду сборки docker для настройки контейнера. Когда я запускаю его, нужный мне файл не может быть найден. Я получаю эту ошибку

/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 новый (этот новый файл тоже не найден)

  • сброс учетных данных докера

Мой текущий скрипт:

...
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 заканчивается.

...