Сборка Dockerfile: FileNotFoundError: [Errno 2] Нет такого файла или каталога - PullRequest
0 голосов
/ 17 февраля 2020

Почему я получаю FileNotFoundError: [Errno 2] No such file or directory, когда во время сборки Dockerfile файл явно помещается в файловую систему. Например, вот последний вывод из Docker:

Step 8/9 : COPY https.py /tmp
 ---> Using cache
 ---> 685946ede218
Step 9/9 : RUN /usr/bin/python3 /tmp/https.py
 ---> Running in c1c2acba9483
Traceback (most recent call last):
  File "/tmp/https.py", line 16, in <module>
    certfile='/etc/nginx/certs/cert.pem', server_side=True)
  File "/usr/lib/python3.7/ssl.py", line 1216, in wrap_socket
    context.load_cert_chain(certfile, keyfile)
FileNotFoundError: [Errno 2] No such file or directory

Если я закомментирую Шаг 9, затем пересоберите и запустите c в контейнер, я смогу увидеть следующие файлы:

root@8eef51287e5b:/# ls -l /tmp/https.py 
-rw-r--r-- 1 root root 504 Feb 17 15:53 /tmp/https.py
root@8eef51287e5b:/# ls -l /etc/nginx/certs/
total 8
-rw-r--r-- 1 root root 1903 Jan 21 16:23 cert.pem
-rw------- 1 root root 1704 Jan 21 16:23 privkey.pem

Почему я получаю FileNotFoundError?

1 Ответ

0 голосов
/ 17 февраля 2020

Эта ошибка произошла со мной, когда файл Docker был в неверном формате (Windows, включая повторный запуск каретки + перевод строки), так что после команды docker-compose код не читался должным образом.

Это исчез, когда я изменил формат файла с помощью Notepad ++, переключившись с Windows (CR LF) на Unix (LF). Это можно сделать в нижнем баннере рядом с текстовым форматом, указывающим UTF-8 для примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...