如何通过 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/

这将 运行 脚本在启动时更改您的用户权限。