Почему мы должны установить 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

Заранее спасибо.

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