#python #docker #dockerfile #windows-subsystem-for-linux
Вопрос:
Я использую LINUX WSL в своей системе Windows 10 для создания образа docker, но всегда сталкиваюсь с ошибкой:
ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'
Я уже включил COPY
команду внутри файла dockerfile для копирования всего (включая requirements.txt) в /app
каталог. Это всегда происходит, когда я непосредственно даю docker build
команду, не копируя папку репозитория с хоста Windows 10 в WSL LINUX (используя каталог /mnt для поиска файла настройки в хост-системе).
Однако, если я сначала скопирую папку репозитория в WSL, она будет работать без проблем. Я прикрепил файл dockerfile ниже,
#get python
FROM python:3.7
#install odbc unix distribution
RUN apt-get update amp;amp; apt-get install -y --no-install-recommends
unixodbc-dev
unixodbc
libpq-dev
#set working directory
WORKDIR /app
# Copy the rest of the working directory contents into the container at /app
COPY . .
# Install any needed packages specified in requirements.txt
RUN pip install -r requirements.txt
Комментарии:
1. В качестве быстрой проверки вы можете добавить
RUN ls
, чтобы просмотреть содержимое вашей папки послеCOPY
команды, просто чтобы убедиться, что все там так, как должно быть.2. В Docker есть так называемый «контекст», который в обычных случаях является тем же корневым каталогом, в котором находится ваш файл Dockerfile. Команды КОПИРОВАНИЯ работают только с файлами или каталогами, уже расположенными в вашем контексте. Есть несколько способов обойти это (в зависимости от другого контекста), но они в основном очень запутанные. Убедитесь, что при сборке файлы всегда находятся в правильном контексте.