From ba16f80c2e58a6f0a02878f639716525c40a3fd3 Mon Sep 17 00:00:00 2001 From: Michael Andrews Date: Tue, 23 May 2017 14:52:33 -0700 Subject: [PATCH] Encapsulate .env setup commands --- docker/multi-process/Dockerfile | 3 ++- docker/scripts/setup_env | 35 ++++++++++++++++++++++++++++++ docker/single-process/Dockerfile | 2 +- docker/single-process/scripts/init | 29 +------------------------ 4 files changed, 39 insertions(+), 30 deletions(-) create mode 100755 docker/scripts/setup_env diff --git a/docker/multi-process/Dockerfile b/docker/multi-process/Dockerfile index 41de6312..3dde017b 100644 --- a/docker/multi-process/Dockerfile +++ b/docker/multi-process/Dockerfile @@ -20,7 +20,8 @@ COPY . /app ARG OUTDATED_DOCKER_IMAGE_NAMESPACE=false ENV OUTDATED_DOCKER_IMAGE_NAMESPACE ${OUTDATED_DOCKER_IMAGE_NAMESPACE} -ADD ["docker/scripts/setup", "docker/multi-process/scripts/init", "/scripts/"] +ADD ["docker/scripts/setup", "docker/scripts/setup_env", "docker/multi-process/scripts/init", "/scripts/"] + RUN /scripts/setup VOLUME /var/lib/mysql diff --git a/docker/scripts/setup_env b/docker/scripts/setup_env new file mode 100755 index 00000000..efb530b0 --- /dev/null +++ b/docker/scripts/setup_env @@ -0,0 +1,35 @@ +#!/bin/bash +set -e + +export LC_ALL=en_US.UTF-8 + +cd /app + +# Configure database based on linked container +if [ -n "${MYSQL_PORT_3306_TCP_ADDR}" ]; then + DATABASE_ADAPTER=${DATABASE_ADAPTER:-mysql2} + DATABASE_HOST=${DATABASE_HOST:-${MYSQL_PORT_3306_TCP_ADDR}} + DATABASE_PORT=${DATABASE_PORT:-${MYSQL_PORT_3306_TCP_PORT}} + DATABASE_ENCODING=${DATABASE_ENCODING:-utf8mb4} +elif [ -n "${POSTGRES_PORT_5432_TCP_ADDR}" ]; then + DATABASE_ADAPTER=${DATABASE_ADAPTER:-postgresql} + DATABASE_HOST=${DATABASE_HOST:-${POSTGRES_PORT_5432_TCP_ADDR}} + DATABASE_PORT=${DATABASE_PORT:-${POSTGRES_PORT_5432_TCP_PORT}} + DATABASE_ENCODING=utf8 +fi + +USE_GRAPHVIZ_DOT=${USE_GRAPHVIZ_DOT:-${USE_GRAPHVIZ_DOT:-dot}} + +# Default to the environment variable values set in .env.example +IFS="=" +grep = /app/.env.example | sed -e 's/^#\([^ ]\)/\1/' | grep -v -e '^#' | \ + while read var value ; do + eval "echo \"$var=\${$var:-\${HUGINN_$var-\$value}}\"" + done | grep -v -e ^= > /app/.env + +eval "echo PORT=${PORT:-${PORT:-3000}}" >> .env +eval "echo RAILS_ENV=${RAILS_ENV:-${RAILS_ENV:-production}}" >> .env +eval "echo RAILS_LOG_TO_STDOUT=true" >> .env +eval "echo RAILS_SERVE_STATIC_FILES=true" >> .env + +chmod ugo+r /app/.env diff --git a/docker/single-process/Dockerfile b/docker/single-process/Dockerfile index 3056fd30..85ed0b6a 100644 --- a/docker/single-process/Dockerfile +++ b/docker/single-process/Dockerfile @@ -17,7 +17,7 @@ COPY . /app ARG OUTDATED_DOCKER_IMAGE_NAMESPACE=false ENV OUTDATED_DOCKER_IMAGE_NAMESPACE ${OUTDATED_DOCKER_IMAGE_NAMESPACE} -ADD ["docker/scripts/setup", "docker/single-process/scripts/init", "/scripts/"] +ADD ["docker/scripts/setup", "docker/scripts/setup_env", "docker/single-process/scripts/init", "/scripts/"] RUN /scripts/setup diff --git a/docker/single-process/scripts/init b/docker/single-process/scripts/init index 704708ca..88730ddb 100755 --- a/docker/single-process/scripts/init +++ b/docker/single-process/scripts/init @@ -13,34 +13,7 @@ if [ -z "$APP_SECRET_TOKEN" ] && grep -q ^APP_SECRET_TOKEN=REPLACE_ME_NOW .env.e sed -i.orig "s:REPLACE_ME_NOW:$secret:" .env.example fi -# Configure database based on linked container -if [ -n "${MYSQL_PORT_3306_TCP_ADDR}" ]; then - DATABASE_ADAPTER=${DATABASE_ADAPTER:-mysql2} - DATABASE_HOST=${DATABASE_HOST:-${MYSQL_PORT_3306_TCP_ADDR}} - DATABASE_PORT=${DATABASE_PORT:-${MYSQL_PORT_3306_TCP_PORT}} - DATABASE_ENCODING=${DATABASE_ENCODING:-utf8mb4} -elif [ -n "${POSTGRES_PORT_5432_TCP_ADDR}" ]; then - DATABASE_ADAPTER=${DATABASE_ADAPTER:-postgresql} - DATABASE_HOST=${DATABASE_HOST:-${POSTGRES_PORT_5432_TCP_ADDR}} - DATABASE_PORT=${DATABASE_PORT:-${POSTGRES_PORT_5432_TCP_PORT}} - DATABASE_ENCODING=utf8 -fi - -USE_GRAPHVIZ_DOT=${USE_GRAPHVIZ_DOT:-${USE_GRAPHVIZ_DOT:-dot}} - -# Default to the environment variable values set in .env.example -IFS="=" -grep = /app/.env.example | sed -e 's/^#\([^ ]\)/\1/' | grep -v -e '^#' | \ - while read var value ; do - eval "echo \"$var=\${$var:-\${HUGINN_$var-\$value}}\"" - done | grep -v -e ^= > /app/.env - -eval "echo PORT=${PORT:-${PORT:-3000}}" >> .env -eval "echo RAILS_ENV=${RAILS_ENV:-${RAILS_ENV:-production}}" >> .env -eval "echo RAILS_LOG_TO_STDOUT=true" >> .env -eval "echo RAILS_SERVE_STATIC_FILES=true" >> .env - -chmod ugo+r /app/.env +/scripts/setup_env source /app/.env # use default port number if it is still not set