如何通过docker-compose给Postgres用户SuperUser优先?

时间:2019-05-22 05:33:35

标签: django postgresql docker superuser

这是我的postgres容器的docker-compose文件部分。这些设置很好,但是我的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'

1 个答案:

答案 0 :(得分:2)

您需要将命令另存为脚本,例如./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/

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