Django/Docker: веб-контейнер не обновляет код

Я использую Django docker app и не могу применить обновление кода к моему веб-контейнеру.

Я пытался удалить все контейнеры (docker rm -f ID ; docker system prune) и изображения (docker rmi -f ID ; docker image prune), связанные с моим приложением, и заново собрать с docker-compose -f docker-comose.preprod.yml build

Затем я запускаю docker-compose -f docker-comose.preprod.yml up, но по некоторым причинам, когда я подключаюсь к моему веб-контейнеру (docker exec -it web sh) и читаю обновленные файлы, я вижу, что обновления не применяются...

Как сделать, чтобы обновление было применено?

# Pull the official base image
FROM python:3.8.3-alpine

# Set a work directory
WORKDIR /usr/src/app

# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# install psycopg2 dependencies
RUN apk update && apk add postgresql-dev gcc g++ python3-dev musl-dev

RUN apk --update add libxml2-dev libxslt-dev libffi-dev musl-dev libgcc openssl-dev curl postgresql-client
RUN apk add jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev nano
RUN pip3 install psycopg2 psycopg2-binary

# install xgettext for i18n
RUN apk add gettext

# Install dependencies
COPY requirements/ requirements/
RUN pip install --upgrade pip && pip install -r requirements/preprod.txt

# Copy the entrypoint.sh file
COPY entrypoint.preprod.sh .

# Copy the initdata sql file
COPY initdata.preprod.sql .

# Copy the project's files
COPY . .

RUN chmod +x entrypoint.preprod.sh
version: '3.7'

services:
    web:
        restart: always
        container_name: ecrf_web
        build:
            context: ./app
            dockerfile: Dockerfile.preprod
        command: gunicorn core.wsgi:application --bind 0.0.0.0:8000
        volumes:
            - app_volume:/usr/src/app
            - static_volume:/usr/src/app/static
            - media_volume:/usr/src/app/media
        expose:
            - 8000
        env_file:
            - ./.env.preprod
        entrypoint: [ "/usr/src/app/entrypoint.preprod.sh" ]
        depends_on:
            - redis
        healthcheck:
            test: [ "CMD", "curl", "-f", "http://localhost:8000/" ]
            interval: 30s
            timeout: 10s
            retries: 50

    redis:
        container_name: ecrf_redis
        image: "redis:alpine"

    celery:
        container_name: ecrf_celery
        build:
            context: ./app
            dockerfile: Dockerfile.preprod
        command: celery -A core worker -l info
        volumes:
            - app_volume:/usr/src/app
        env_file:
            - ./.env.preprod
        depends_on:
            - web
            - redis

    celery-beat:
        container_name: ecrf_celery-beat
        build:
            context: ./app
            dockerfile: Dockerfile.preprod
        command: celery -A core beat -l info
        volumes:
            - app_volume:/usr/src/app
        env_file:
            - ./.env.preprod
        depends_on:
            - web
            - redis

    nginx:
        container_name: ecrf_nginx
        build: ./nginx
        restart: always
        volumes:
            - static_volume:/usr/src/app/static
            - media_volume:/usr/src/app/media
        ports:
            - 1370:80
        depends_on:
            - web

volumes:
    static_volume:
    media_volume:
    app_volume:
Вернуться на верх