Как передать переменные окружения в контейнер postgres - PullRequest
0 голосов
/ 26 февраля 2020

My docker -compose

  database:
   container_name: k4fntr_database
   build: ./docker/postgres
   restart: always
   environment:
     ENV: ${APP_ENV}
     TESTING_DB: ${DB_DATABASE_TESTING}
     POSTGRES_DB: ${DB_DATABASE}
     POSTGRES_USER: ${DB_USERNAME}
     POSTGRES_PASSWORD: ${DB_PASSWORD}
   ports:
    - "15432:5432"
   volumes:
    - ./docker/postgres/pg-data:/var/lib/postgresql/data:rw
   networks:
    - backend-network

Я хочу создать 2 дополнительные базы данных после сборки контейнера, но только если это локальная разработка.

Для этого я создал папка docker -entrypoint-initdb.d, которая содержит скрипт

#!/bin/bash

set -e
set -u

if [ "$ENV" == 'local' ]; then
     (
      echo "CREATE DATABASE $TESTING_DB OWNER $POSTGRES_USER;"
     ) | (export PGPASSWORD=$POSTGRES_PASSWORD && psql -h 127.0.0.1 -U $POSTGRES_USER)
fi

У меня также есть файл Docker, куда я копирую эту папку в контейнер

FROM postgres:10.5-alpine
COPY /docker-entrypoint-initdb.d/ /docker-entrypoint-initdb.d/

, но проблема в том, что это файл был скопирован без значений переменных.

Как передать эти переменные?

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