Не удалось вычислить ключ кэша: «/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 поддерживает расширения, позволяющие добавлять дополнительную функциональность, такие как аутентификация и авторизация.
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