【发布时间】:2016-08-15 09:15:26
【问题描述】:
我有一个 dump.sql 文件,我想用 docker-compose 加载它。
docker-compose.yml:
services:
postgres:
environment:
POSTGRES_DB: my_db_name
POSTGRES_USER: my_name
POSTGRES_PASSWORD: my_password
build:
context: .
dockerfile: ./devops/db/Dockerfile.db
目前我的 Dockerfile.db 真的很简单:
FROM postgres
MAINTAINER me <me@me.me>
COPY ./devops/db ./devops/db
WORKDIR ./devops/db
我想在某个时候运行类似psql my_db_name < dump.sql 的命令。如果我从 Dockerfile.db 运行这样的脚本,问题是脚本在构建之后但在 docker-compose up 之前运行,并且数据库尚未运行。
知道怎么做吗?
【问题讨论】:
-
一般来说,我通过编写一个执行 docker-compose up -d 的 bash 脚本,然后使用执行 SQL 转储命令的 docker-compose exec db_service_name 来完成此操作。
标签: postgresql docker docker-compose dockerfile