我希望构建代表已经存在的公司数据库的Dockerfile。同样,我想创建一个Dockerfile,它通过恢复psql转储文件来启动。
我的psql_dump.sql
文件在.
目录中。
FROM postgres
ADD . /init_data
run "createdb" "--template=template0" "my_database"
run "psql" "-d" "my_database" --command="create role my_admin superuser"
run "psql" "my_database" "<" "init_data/psql_dump.sql"
我原以为这样做已经足够好了。我想避免使用.sh
脚本的解决方案,就像这个解决方案那样。
我使用template0,因为psql文档中说需要创建与原始数据库相同的用户,并且在恢复之前需要使用template0创建数据库。
然而,它给了我一个错误:
createdb: could not connect to database template1: could not connect to server: No such file or directory
Is the server running locally and accepting
我还在使用Docker Compose来管理整个应用程序,如果在Docker Compose中解决这个问题更好,我很乐意使用基础的psql镜像并使用Docker Compose来实现。