Скрипт первого запуска в Docker
SQL-скрипт из каталога первого запуска создаёт объекты, пока каталог данных ещё пуст. Образ выполняет такие файлы только при первой инициализации хранилища, когда в томе ещё нет рабочих файлов кластера.
В файле init/app.sql
лежит одна команда
создания таблицы notes:
CREATE TABLE notes (id INT);
Сервис db на postgres:18
получает пароль demo,
том dbdata
на /var/lib/postgresql
и папку ./init
на /docker-entrypoint-initdb.d:
services:
db:
image: postgres:18
environment:
POSTGRES_PASSWORD: demo
volumes:
- dbdata:/var/lib/postgresql
- ./init:/docker-entrypoint-initdb.d
volumes:
dbdata:
Фоновый подъём проекта
выполняют командой
docker compose up
с флагом -d:
docker compose up -d
После готовности сервера
внутри сервиса откроем клиент
под пользователем postgres
и посмотрим список таблиц -
имя notes там есть:
docker compose exec db psql -U postgres -c "\dt"
Опишите на пустом томе store таблицу items через SQL-файл в подключённой папке старта с паролем demo.
Отметьте после подъёма, что таблица items видна в кластере.