我有一个带有 postgres 的 docker-compose.yml 和一个网络应用程序(ghost)。我想在 postgres 和 ghost 之间运行一个容器来初始化 postgres,添加数据库和用户权限,然后退出。
我的数据库初始化代码如下所示:
ghostdb:
extends:
file: ./compose/ghost.yml
service: ghostdb
links:
- postgres
volumes:
- ./ghost-db/volumes/sql:/sql
依次运行
#!/bin/bash
echo Importing SQL
until pg_isready -h postgres; do
sleep 1
done
for f in /sql/*.sql; do
echo Importing $f
psql -h postgres -f $f
done
我知道我可以扩展 postgres 以添加此功能,但我宁愿将这两个问题分开。所以我有两个问题:
初始化数据库是否有更好的模式?是否可以运行在 postgres 和 ghost 之间退出的容器?
完整的存储库可以在这里查看:https ://github.com/devpaul/ghost-compose