使用还原转储为数据库创建Dockerfile

时间:2017-11-13 01:06:00

标签: dockerfile

我想为数据库创建一个Dockerfile。在这个Dockerfile中,我想添加转储和恢复。然后我构建一个图像,每次运行一个容器,我都会恢复数据库

这是我的Dockerfile

FROM postgres:9.5.8

WORKDIR /home/

COPY my_dump.sql my_dump.sql

EXPOSE 5432 5432

RUN psql -f my_dump.sql postgres

然后我执行

$ docker build -t my_postgres_db .

我得到了

Step 5/5 : RUN psql -f my_dump.sql postgres
 ---> Running in 70f7b511cc7c
psql: could not connect to server: No such file or directory
  Is the server running locally and accepting
  connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

1 个答案:

答案 0 :(得分:0)

这是一个很好的小脚本,用于执行此操作并从https://docs.docker.com/compose/startup-order/

更改

您需要做的就是创建脚本

#!/bin/bash
# wait-for-postgres.sh

set -e

host="$1"
shift

until psql -h "$host" -U "postgres" -c '\q'; do
  >&2 echo "Postgres is unavailable - sleeping"
  sleep 1
done

>&2 echo "Postgres is up - you can execute commands now"

然后将其添加到docker文件

RUN /wait-for-postgres.sh host

然后在那之后运行命令