@a_horse_with_no_name的评论使我处在正确的轨道上。我决定放弃单用户模式,即使它是“推荐”的。相反,我使用pg_ctl启动postgres,加载一些包含表创建内容的sql文件,并使用pg_ctl停止服务器。
我的shell脚本如下所示:
#!/bin/bash
echo "******CREATING DOCKER DATABASE******"
echo "starting postgres"
gosu postgres pg_ctl -w start
echo "bootstrapping the postgres db"
gosu postgres psql -h localhost -p 5432 -U postgres -a -f /db/bootstrap.sql
echo "initializing tables"
gosu postgres psql -h localhost -p 5432 -U postgres -d orpheus -a -f /db/setup.sql
echo "stopping postgres"
gosu postgres pg_ctl stop
echo "stopped postgres"
echo ""
echo "******DOCKER DATABASE CREATED******"