Как сохранить данные после перехода на deocker для развертывания (Wagtail в существующем проекте Django)

позвольте мне прояснить, что происходит....... Я работаю над проектом Wagtail, который появился благодаря следующим шагам: -Как добавить Wagtail в существующий проект Django(https://docs.wagtail.org/en/stable/advanced_topics/add_to_django_project.html)

и я пытаюсь переключить проект на docker для развертывания и не забудьте "import sql dump into postgres", и я пытаюсь запустить на uwsgi и все идеально без ошибок, но есть проблема после всего я не могу видеть ничего на страницах и когда я пытаюсь получить доступ к админке нет никаких существующих страниц (что означает, что я должен создать страницы с нуля)

Вот некоторые команды, которые я использовал: -docker-compose -f docker-compose-deploy.yml build -docker-compose -f docker-compose-deploy.yml up -docker-compose -f docker-compose-deploy.yml run --rm app sh -c "python manage.py createsuperuser"

если это необходимо, вот Dockerfile:

FROM python:3.9-slim-bookworm
LABEL maintainer="londonappdeveloper.com"

ENV PYTHONUNBUFFERED=1

# Install dependencies
RUN apt-get update && apt-get install --no-install-recommends -y \
    build-essential \
    libpq-dev \
    gcc \
    exiftool \
    imagemagick \
    libmagickwand-dev \
    libmagic1 \
    redis-tools \
    && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
    && rm -rf /var/lib/apt/lists/*


# Set up virtual environment
RUN python -m venv /py && \
    /py/bin/pip install --upgrade pip

# Copy application files
COPY ./requirements.txt /requirements.txt
COPY . /app
COPY ./scripts /scripts

WORKDIR /app
EXPOSE 8000

# Install Python dependencies
RUN /py/bin/pip install -r /requirements.txt

# Set up directories for static and media files
RUN adduser --disabled-password --no-create-home app && \
    mkdir -p /vol/web/static && \
    mkdir -p /vol/web/media && \
    chown -R app:app /vol && \
    chmod -R 755 /vol && \
    chmod -R +x /scripts


ENV PATH="/scripts:/py/bin:$PATH"

USER app

CMD ["run.sh"]

docker-compose-deploy.yml:

version: '3.9'

services:
  app:
    build:
      context: .
    restart: always
    volumes:
      - static-data:/vol/web
    environment:
      - DB_HOST=db
      - DB_NAME=${DB_NAME}
      - DB_USER=${DB_USER}
      - DB_PASS=${DB_PASS}
      - SECRET_KEY=${SECRET_KEY}
      - ALLOWED_HOSTS=${ALLOWED_HOSTS}
      - REDIS_URL=${REDIS_URL}
    depends_on:
      - db
      - redis
    links:
      - db:db
      - redis:redis
  
  db:
    image: postgres:13-alpine
    restart: always
    volumes:
      - postgres-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=${DB_NAME}
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASS}
  
  proxy:
    build:
      context: ./proxy
    restart: always
    depends_on:
      - app
    ports:
      - 80:8000
    volumes:
      - static-data:/vol/static
  
  redis:
    image: redis:alpine
  
volumes:
  postgres-data:
  static-data:

я пытаюсь увидеть проект работающим как b4 применить docker но теперь он пуст ничего не показывает и также на странице администратора нет никаких страниц она пуста.

Ответ на основе вчерашнего комментария о конфликтах импорта при импорте в базу данных с существующими миграциями:

Вариант 1: подключитесь к базе данных postgres, удалите базу данных $DB_NAME, создайте ее заново, а затем импортируйте, не запуская миграции. Ссылка

Вариант 2: Настройте контейнер PG на импорт дампа данных при инициализации. Чтобы сделать это, вам придется сначала уничтожить том данных, который у вас есть для PG, поскольку это происходит только при первом запуске базы данных. Подробности см. в разделе "Скрипты инициализации" в официальной документации по образу.

Вернуться на верх