Я потею из-за странной проблемы. Я монтирую папку с хост-машины в контейнер (только для разработки). Папка называется dj_docker
и содержит папку dj_docker/media
с некоторыми файлами .pdf
, которые должны оказаться в контейнере и должны быть доступны для других контейнеров через том media_volume
. Тем не менее, как только я сопоставляю подкаталог /media
с томом (монтирование привязки и том теперь включают в себя папку /media
), все содержимое папки исчезает в контейнере. Папка пуста.
Упрощенный docker-compose.yml:
version: '3.7'
services:
restapi:
volumes:
- media_volume:/usr/src/dj/media
- ./dj_docker:/usr/src/dj/
volumes:
static_volume:
media_volume:
Если я опускаю том в файле docker-compose, файлы .pdf видны и присутствуют в контейнере:
volumes:
- ./dj_docker:/usr/src/dj/
Можно ли по-прежнему использовать привязку, а также том, где я храню файлы в контейнере?
Dockerfile
# pull official base image
FROM python:3.7-alpine
# set environment varibles
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# set work directory
WORKDIR /usr/src/dj
# install psycopg2
RUN apk update \
&& apk add --virtual build-deps gcc python3-dev musl-dev \
&& apk add postgresql-dev \
&& pip install psycopg2 \
&& apk del build-deps
# install dependencies
RUN pip install --upgrade pip
COPY ./requirements.txt /usr/src/dj/requirements.txt
RUN pip install -r requirements.txt
VOLUME /usr/src/dj/media
# copy entrypoint.sh
COPY ./entrypoint.sh /usr/src/dj/entrypoint.sh
# run entrypoint.sh
ENTRYPOINT ["/usr/src/dj/entrypoint.sh"]