Почему мы должны установить postgresql в контейнер Django?
Почему необходимо устанавливать postgresql как зависимость в контейнер бэкенда Django? Приложение Django предназначено для подключения к БД PostgreSQL, запущенной в отдельном контейнере.
У меня есть следующий Dockerfile:
# pull official base image
FROM python:3.12.4-slim-bookworm
# set working directory
WORKDIR /usr/src/app
# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# new
# install system dependencies
RUN apt-get update \
&& apt-get -y install gcc postgresql \
&& apt-get clean
# install dependencies
RUN pip install --upgrade pip
COPY ./requirements.txt .
RUN pip install -r requirements.txt
# add app
COPY . .
And I have the next docker-compose.yml file:
services:
movies:
build: ./app
command: python manage.py runserver 0.0.0.0:8000
volumes:
- ./app/:/usr/src/app/
ports:
- 8009:8000
env_file:
- ./app/.env.dev
depends_on:
- movies-db
movies-db:
image: postgres:16
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
- POSTGRES_USER=movies
- POSTGRES_PASSWORD=movies
- POSTGRES_DB=movies_dev
volumes:
postgres_data:
Так происходит в курсе "Test-Driven Development with Django, Django REST Framework, and Docker" от testdriven.io
Заранее спасибо.