Не удалось вычислить ключ кэша: «/films» не найдено: не найдено?

Не удалось вычислить ключ кэша: «/films» не найдено: не найдено? Моя структура приложения:

Не удалось вычислить ключ кэша: «/films» не найдено: не найдено?

Мой докерфайл:

FROM python:3.7

RUN useradd --create-home userapi
WORKDIR /films

COPY requirements.txt .
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
COPY films/ .
RUN crown -R userapi:userapi ./
USER userapi

EXPOSE 5000
CMD ["python", "./wsgi.py"]

Я получил ошибку:

 => ERROR [7/8] COPY films/ .   

failed to compute cache key: "/films" not found: not found

почему не могу найти films ??

🤔 А знаете ли вы, что...
Flask поддерживает расширения, позволяющие добавлять дополнительную функциональность, такие как аутентификация и авторизация.


22
1

Ответ:

Решено

Dockerfile для вашего приложения находится в локальном каталоге ~/Documents/films. Когда вы создаете образ Docker из папки ~/Documents/films, эта папка является контекстом сборки, на который ссылается относительный путь . (например, ./data), поэтому он не может быть найден по полному имени (например, фильмы)

Вы должны использовать инструкцию COPY для копирования файлов из . в их расположение в файловой системе изображения. Если вы хотите, чтобы все файлы в ~/Documents/films находились в корневом каталоге образа с именем «/films», измените инструкцию на:

COPY . /films

В противном случае вы можете указать, какие файлы/папки вы хотите скопировать в контексте сборки, как вы сделали с инструкцией COPY requirements.txt ..

например.:

COPY ./data /films/data
COPY ./config.py /films/config.py