如何通过 docker-compose 赋予 Postgres 用户超级用户权限?
How to Give A Postgres User SuperUser Previllege Through docker-compose?
这是我的 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;
那么你的docker-compose:
...
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/
这将 运行 脚本在启动时更改您的用户权限。
这是我的 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;
那么你的docker-compose:
...
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/
这将 运行 脚本在启动时更改您的用户权限。