Это мой раздел файла docker-compose для контейнера postgres. Эти настройки хороши, но мое приложение django требует, чтобы у этого пользователя были права суперпользователя с помощью этой команды внутри postgresql.
ALTER ROLE project_admin SUPERUSER;
Как это можно разместить внутри этого файла docker-compose?
db:
image: postgres:latest
container_name: project-db
environment:
- POSTGRES_USER='project_admin'
- POSTGRES_PASS='projectpass'
- POSTGRES_DB='project'
Вам нужно сохранить свою команду как скрипт, скажем ./scripts/01_users.sql
:
ALTER ROLE project_admin SUPERUSER;
Затем ваша докер-компоновка:
...
db:
image: postgres:latest
container_name: project-db
environment:
- POSTGRES_USER='project_admin'
- POSTGRES_PASS='projectpass'
- POSTGRES_DB='project'
volumes:
- ./scripts/:/docker-entrypoint-initdb.d/
Это запустит скрипт при запуске и изменит привилегии вашего пользователя.
Это .sql, так что он все равно работает
Спасибо, Михай, еще кое-что. Нужно ли включать исполняемый бит в этом скрипте или он все равно будет работать?