Кодировка в Docker
Кодировка кластера задаётся
аргументом initdb
и применяется только
при создании пустого каталога.
Переменная POSTGRES_INITDB_ARGS
передаёт эти аргументы
скрипту первого запуска,
пока том ещё не содержит
файлов базы.
Сервис db
на postgres:18
с паролем demo,
томом csdata
на /var/lib/postgresql
и кодировкой UTF8
в аргументах инициализации:
services:
db:
image: postgres:18
environment:
POSTGRES_PASSWORD: demo
POSTGRES_INITDB_ARGS: "--encoding=UTF8"
volumes:
- csdata:/var/lib/postgresql
volumes:
csdata:
Фоновый подъём проекта:
docker compose up -d
Запрос кодировки сервера
внутри сервиса возвращает UTF8 -
кластер принял набор
при создании каталога:
docker compose exec db psql -U postgres -c "SHOW server_encoding"
Настройте сервис shop на пустом томе store с кодировкой UTF8 через аргументы инициализации рядом с паролем.
Запишите словами кодировку сервера после первого подъёма.