我有一个带有postgres的docker-compose.yml和一个web应用程序(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