dockerfile postgresl创buildangular色

PostgreSQL 10

我正在尝试在启动时在Docker容器中创build一个angular色

我试过创build这样的angular色:

gosu postgres pg_ctl start -D /var/lib/postgresql/data if [ "${PGUSER}" != 'postgres' ]; then gosu postgres psql --command="CREATE USER ${PGUSER} SUPERUSER WITH PASSWORD '${PGPASSWORD}';" --echo-hidden --echo-queries fi gosu postgres pg_ctl stop -w -D /var/lib/postgresql/data 

这仍然给我致命一击:angular色“grafadmin”不存在

当试图创build一个数据库:

 gosu postgres createdb -O grafadmin grafana 

我也试过:

 cat > ${HOMEDIR}/user.sql <<SQL DO $body$ BEGIN IF NOT EXISTS ( SELECT FROM pg_catalog.pg_user WHERE username = '${PGUSER}') THEN CREATE ROLE ${PGUSER} WITH SUPERUSER PASSWORD '${PGPASSWORD}'; END IF; END $body$; SQL cat ${HOMEDIR}/user.sql gosu postgres psql --file="${HOMEDIR}/user.sql" --echo-hidden --echo-queries 

我可能忽略了一些简单的…

当您创build可以login的用户时,更喜欢CREATE USER而不是CREATE ROLE 。它将添加一个额外的参数LOGIN 。 没有它你不能login。

 cat > ${HOMEDIR}/user.sql <<SQL DO $body$ BEGIN IF NOT EXISTS ( SELECT FROM pg_catalog.pg_user WHERE username = '${PGUSER}') THEN CREATE USER ${PGUSER} WITH SUPERUSER PASSWORD '${PGPASSWORD}'; END IF; END $body$; SQL cat ${HOMEDIR}/user.sql gosu postgres psql --file="${HOMEDIR}/user.sql" --echo-hidden --echo-queries 

更多信息请参阅: https : //www.postgresql.org/docs/10/static/sql-createuser.html