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