From 1b1f514296a1940bb48bbc28cce2e7a2346aed0b Mon Sep 17 00:00:00 2001 From: John Hollowell Date: Mon, 22 Jun 2020 21:02:39 -0400 Subject: [PATCH 1/2] Update docker-entrypoint.sh copied in file_env() from the mysql entrypoint and added appropriate calls --- docker-entrypoint.sh | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 3387443..e56ff7a 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -1,6 +1,37 @@ #!/bin/bash set -euo pipefail +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + mysql_error "Both $var and $fileVar are set (but are exclusive)" + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +file_env 'YOURLS_DB_HOST' +file_env 'YOURLS_DB_USER' +file_env 'YOURLS_DB_PASS' +file_env 'YOURLS_DB_NAME' +file_env 'YOURLS_DB_PREFIX' +file_env 'YOURLS_COOKIEKEY' +file_env 'YOURLS_SITE' +file_env 'YOURLS_USER' +file_env 'YOURLS_PASS' + if [ ! -e /var/www/html/yourls-loader.php ]; then tar cf - --one-file-system -C /usr/src/yourls . | tar xf - chown -R www-data:www-data /var/www/html From 0ea0f4eece7d63da38d450e7f017105153b18d25 Mon Sep 17 00:00:00 2001 From: John Hollowell Date: Wed, 24 Jun 2020 16:25:37 -0400 Subject: [PATCH 2/2] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Léo Colombaro --- docker-entrypoint.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index e56ff7a..0b4426a 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -10,7 +10,7 @@ file_env() { local fileVar="${var}_FILE" local def="${2:-}" if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then - mysql_error "Both $var and $fileVar are set (but are exclusive)" + printf 'Both %s and %s are set (but are exclusive)' "$var" "$fileVar" fi local val="$def" if [ "${!var:-}" ]; then @@ -27,7 +27,6 @@ file_env 'YOURLS_DB_USER' file_env 'YOURLS_DB_PASS' file_env 'YOURLS_DB_NAME' file_env 'YOURLS_DB_PREFIX' -file_env 'YOURLS_COOKIEKEY' file_env 'YOURLS_SITE' file_env 'YOURLS_USER' file_env 'YOURLS_PASS'