Я открыт для идеи, что мой подход неверен, но в настоящее время у меня есть следующий файл 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, показанного выше?