Докеру не удалось восстановить резервную копию postgres - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь создать и восстановить postgres резервную копию с помощью докера.Docker не смог сделать это и выдает мне следующую ошибку:

/usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*

dockerfile:

FROM postgres:11

ENV POSTGRES_USER postgres
ENV POSTGRES_PASSWORD postgres
ENV POSTGRES_DB dbName

COPY backup.backup /
COPY initdb.sh /docker-entrypoint-initdb.d

initdb.sh:

pg_restore --username=postgres --create --exit-on-error --verbose --dbname=dbName backup.backup

docker-compose.yml:

version: '2'

services:
  db:
image: postgres:11
expose:
  - "5432"
ports:
  - "15432:5432"
volumes:
  - dock-volume:/var/lib/postgresql/data
environment:
  - POSTGRES_PASSWORD= postgres
  - POSTGRES_DB= dbName


volumes:
  dock-volume:

Я пытался добавить переменные окружения в docker-compose.yml, но это не помогает ..

1 Ответ

0 голосов
/ 23 января 2019

Вы не должны создавать Dockerfile для Postgres, потому что у вас уже есть определение в вашем файле Dockercompose. Переменные, которые вы определяете в environment, видны внутри Postgres. Если вы хотите иметь резервную копию и убедиться, что она запускается при инициализации, вы можете сделать:

volumes:
  - ~/Downloads/data/my_buckup.psql:/docker-entrypoint-initdb.d/stage.sql

Затем при инициализации Postgres будет запущен этот скрипт. Вы можете посмотреть документацию здесь в разделе How to extend this image

Надеюсь, это имеет смысл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...