Postgres Docker: запускать скрипт создания, только если он не был запущен - PullRequest
0 голосов
/ 20 апреля 2020

Я открыт для идеи, что мой подход неверен, но в настоящее время у меня есть следующий файл docker;

FROM postgres
ENV POSTGRES_USER test_user
ENV POSTGRES_PASSWORD my_password
ENV POSTGRES_DB mydb
COPY ./database/create.sql /docker-entrypoint-initdb.d/

Он предназначен для модульного и функционального тестирования, поэтому у меня есть два варианта использования: 1: Создание нового контейнера с пустой базой данных и начальными данными, 2: Создайте контейнер и присоедините его к существующему тому (с известным набором данных).

В первом случае я хочу запустить скрипт «create. sql». Во-вторых, база данных уже создана, поэтому я не хочу, чтобы она запускалась. Я полагаю, я мог бы создать два docker файла / изображения, но мне интересно, как я мог бы задать вопрос: «Если скрипт создания не был запущен, запустите его - в противном случае пропустите его».

Я посмотрел на флаг ON_ERROR_STOP , думая, что если мой скрипт создания попытается воссоздать существующую таблицу в качестве первого шага, он просто выйдет. Однако я не уверен, как установить его на изображение docker.

Мои конкретные c вопрос (ы)

  • Есть ли лучшая практика для достижения моих вариантов использования, отличных от того, что я описал (и как это реализовать?)
  • Если ON_ERROR_STOP - хороший подход, как мне установить это в контексте файла docker, показанного выше?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...