Как увеличить объем существующей базы данных в контейнере докеров?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как увеличить объем существующей базы данных в контейнере докеров?

Сообщение Anonymous »

У меня есть проект Django. Я создал базу данных PostgreSQL и наполнил ее данными. Как мне нужно смонтировать эту базу данных внутри контейнера докера, но я получаю сообщение об ошибке после запроса ProgrammingError в /api/v1/movies/, отношение «content.film_work» не существует, что говорит о том, что база данных пуста. Когда я запускаю psql -U app -d Movies_database в терминале, я получаю базу данных со всеми данными, но когда я запускаю docker exec -it sh, а затем psql -U app -d Movies_database Я понимаю, что Movies_database пуста. Похоже, я не могу создать объем существующей базы данных внутри контейнера докеров. В чем дело? Я использую PostgreSQL 16.3 (psql (PostgreSQL) 16.3).
docker-compose.yml
version: '3.8'

services:
django:
build:
context: .
volumes:
- "./movies_admin:/movies_admin"
env_file:
- "movies_admin/config/.env"
depends_on:
- database
- elasticsearch

database:

image: postgres:16

environment:

- POSTGRES_DB=movies_database
- POSTGRES_USER=app
- POSTGRES_PASSWORD=123qwe

volumes:
- ./data:/var/lib/postgresql/data

nginx:
image: nginx:latest
container_name: nginx
volumes:
- "./nginx/nginx.conf:/etc/nginx/nginx.conf"
- "./nginx/default.conf:/etc/nginx/conf.d/default.conf"
- "./movies_admin/movies_admin/staticfiles/admin:/etc/nginx/movies_admin/movies_admin/staticfiles/admin"
- "./movies_admin/movies_admin/staticfiles/rest_framework:/etc/nginx/movies_admin/movies_admin/staticfiles/rest_framework"
ports:
- "80:80"
depends_on:
- django

elasticsearch:
image: elasticsearch:8.13.0
container_name: elasticsearch
environment:
- "ES_JAVA_OPTS=-Xms200m -Xmx200m"
- discovery.type=single-node
- xpack.security.enabled=false
ports:
- 9200:9200

Dockerfile
FROM python:3.10.0-alpine

RUN apk add postgresql-client build-base postgresql-dev linux-headers pcre-dev

WORKDIR /movies_admin

COPY requirements.txt .

RUN pip install -r requirements.txt --no-cache-dir

EXPOSE 8000

COPY movies_admin .

RUN python3 manage.py collectstatic --no-input

CMD [ "uwsgi", "--ini", "/movies_admin/uwsgi.ini" ]

comComponents/database.py
import os

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': os.environ.get('DB_NAME'),
'USER': os.environ.get('DB_USER'),
'PASSWORD': '123qwe',
'HOST': os.environ.get('DB_HOST', 'database'),
'PORT': os.environ.get('DB_PORT', 5432),
'OPTIONS': {
'options': '-c search_path=public,content'
}
}
}


docker-compose.yml
version: '3.8'

services:
django:
build:
context: .
volumes:
- "./movies_admin:/movies_admin"
env_file:
- "movies_admin/config/.env"
depends_on:
- database
- elasticsearch

database:

image: postgres:16

environment:

- POSTGRES_DB=movies_database
- POSTGRES_USER=app
- POSTGRES_PASSWORD=123qwe

volumes:
- ./data:/var/lib/postgresql/data

nginx:
image: nginx:latest
container_name: nginx
volumes:
- "./nginx/nginx.conf:/etc/nginx/nginx.conf"
- "./nginx/default.conf:/etc/nginx/conf.d/default.conf"
- "./movies_admin/movies_admin/staticfiles/admin:/etc/nginx/movies_admin/movies_admin/staticfiles/admin"
- "./movies_admin/movies_admin/staticfiles/rest_framework:/etc/nginx/movies_admin/movies_admin/staticfiles/rest_framework"
ports:
- "80:80"
depends_on:
- django

elasticsearch:
image: elasticsearch:8.13.0
container_name: elasticsearch
environment:
- "ES_JAVA_OPTS=-Xms200m -Xmx200m"
- discovery.type=single-node
- xpack.security.enabled=false
ports:
- 9200:9200

Dockerfile
FROM python:3.10.0-alpine

RUN apk add postgresql-client build-base postgresql-dev linux-headers pcre-dev

WORKDIR /movies_admin

COPY requirements.txt .

RUN pip install -r requirements.txt --no-cache-dir

EXPOSE 8000

COPY movies_admin .

RUN python3 manage.py collectstatic --no-input

CMD [ "uwsgi", "--ini", "/movies_admin/uwsgi.ini" ]

comComponents/database.py
import os

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': os.environ.get('DB_NAME'),
'USER': os.environ.get('DB_USER'),
'PASSWORD': '123qwe',
'HOST': os.environ.get('DB_HOST', 'database'),
'PORT': os.environ.get('DB_PORT', 5432),
'OPTIONS': {
'options': '-c search_path=public,content'
}
}
}



Подробнее здесь: https://stackoverflow.com/questions/784 ... -container
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»