Введение в PostgreSQL для Python в Docker
Приложению нужна база рядом,
а не установка сервера
в систему.
Сервер PostgreSQL поднимают
отдельным сервисом
в том же файле,
где описано приложение
на python:3.14.
Скрипт Python обращается к базе
по сети проекта,
а не по порту
на компьютере.
Файлы базы держат
в именованном томе
на /var/lib/postgresql,
чтобы новый контейнер
сервера не начинал
с пустого диска.
Пароль старта, база
и главный пользователь кластера
задают переменными окружения
только при первом старте
пустого тома.
Дамп, конфигурация
и скрипты первого запуска
в этот раздел не входят.
Имя хоста внутри проекта
совпадает с именем
сервиса базы,
а не с localhost.
Соседи видят сервер db
и порт 5432.
Приложение читает адрес
из переменных окружения
и передаёт их драйверу.
Строка psycopg[binary]
в requirements.txt
ставится шагом
pip install
с флагом -r
при сборке образа.
Пакет psycopg2,
SQLAlchemy и Django здесь
не используют:
достаточно psycopg
и модуля http.server
для ответа на порту
8000
с публикацией 8080
на компьютере.
Скрипт выполняет запрос
к таблице и отдаёт
строку в теле ответа.
Соседний сервер PostgreSQL
стартует не мгновенно.
Порядок запуска сдвигает
создание контейнера приложения,
а проверка здоровья
ждёт ответа базы
перед стартом Python.
Образ сервера - postgres:18,
учебный пароль - demo,
база в примерах - db.