Удаление файла в docker контейнере удаляет файл в проекте
Имеется django проект, запускаю его через docker-compose (сам проект django + база postgres). Если после запуска зайти в контейнер и удалить там файл (например старый файл базы sqlite3), то он почему-то удалится не только в контейнере, но и в самом проекте. Т.е. внутри контейнера оказывается не копия проекта, а просто линк на файлы самого проекта на рабочем компьютере. Подскажите пожалуйста, где я допустил ошибку в настройках. Вот Dockerfile:
FROM python:3.9
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
RUN apt-get update && apt-get install -y --no-install-recommends \
python3-dev pkg-config cifs-utils libengine-gost-openssl1.1 curl gnupg2 && \
pip install --no-cache-dir -U pip poetry && poetry config virtualenvs.create false
WORKDIR /usr/src/app
COPY pyproject.toml ./
RUN poetry install --no-root --no-dev
COPY ./backend .
EXPOSE 8000
CMD [ "python", "manage.py", "migrate"]
Вот docker-compose.yml:
version: '3.8'
services:
db:
image: postgres
container_name: postgres
restart: always
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data/
web:
build: .
command: gunicorn --workers=2 --bind 0.0.0.0:8000 backend.wsgi
container_name: django
environment:
- DATABASE_URL
volumes:
- ./backend/:/usr/src/app/
ports:
- "8060:8000"
depends_on:
- db
restart: always
volumes:
postgres_data:
В настройках web, как правильно заметил Alexey Ten, необходимо было удалить
volumes:
- ./backend/:/usr/src/app/
Данный volume был лишний (не требуется мне на текущий момент), а именно он заменял собой файлы, скопированные в контейнер.