From fc943fca4212300171bc8b695c3374f2b5013112 Mon Sep 17 00:00:00 2001 From: mrcbns Date: Thu, 7 Jan 2021 10:48:49 +0100 Subject: [PATCH 1/5] Create load_secrets.sh It load secrets from XYZ_VARIABLE_FILE which allows to use docker secrets properly. (blatantly stolen from mysql 5.7 official Dockerfile Entrypoint.) --- load_secrets.sh | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 load_secrets.sh diff --git a/load_secrets.sh b/load_secrets.sh new file mode 100644 index 0000000..18e338f --- /dev/null +++ b/load_secrets.sh @@ -0,0 +1,41 @@ +#!/bin/bash +set -eo pipefail +shopt -s nullglob + +log() { + local type="$1"; shift + printf '%s [%s] [CMD]: %s\n' "$(date --rfc-3339=seconds)" "$type" "$*" + +error() { + log ERROR "$@" >&2 + exit 1 +} + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_REGISTRY_PASS' 'example' +# (will allow for "$XYZ_REGISTRY_PASS_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" +} + +# Initialize values that might be stored in a file + file_env 'REGISTRY_HOST' '%' + file_env 'REGISTRY_SSL' + file_env 'REGISTRY_DOMAIN' + file_env 'REGISTRY_STORAGE_DELETE_ENABLED' + file_env 'REGISTRY_USER' + file_env 'REGISTRY_PASS' From 63136e7d358200bed79faebf14ac66f7590ffe0f Mon Sep 17 00:00:00 2001 From: mrcbns Date: Thu, 7 Jan 2021 10:50:44 +0100 Subject: [PATCH 2/5] Add load_secrets.sh --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index d3279cb..d4421e5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,9 +15,11 @@ ADD LICENCE /app/LICENCE ADD package.json /app/package.json ADD src/backend /app/src/backend +COPY load_secrets.sh /usr/local/bin/ + WORKDIR /app -CMD node --max_old_space_size=250 --abort_on_uncaught_exception src/backend/index.js +CMD load_secrets.sh && node --max_old_space_size=250 --abort_on_uncaught_exception src/backend/index.js HEALTHCHECK --interval=15s --timeout=3s CMD curl -f http://localhost/ || exit 1 From 4bc85079900d940e7ad24defd6bd11d599874d43 Mon Sep 17 00:00:00 2001 From: moracabanas Date: Thu, 7 Jan 2021 12:37:57 +0100 Subject: [PATCH 3/5] maintainer is deprecated --- Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index d4421e5..a6b8f90 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,5 @@ FROM jc21/node:latest -MAINTAINER Jamie Curnow LABEL maintainer="Jamie Curnow " RUN apt-get update \ From bfce6aeec22c0e06aef0c06a28f311ab77863aed Mon Sep 17 00:00:00 2001 From: moracabanas Date: Thu, 7 Jan 2021 14:07:11 +0100 Subject: [PATCH 4/5] Missing bracket and encapsulate variables setup --- load_secrets.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) mode change 100644 => 100755 load_secrets.sh diff --git a/load_secrets.sh b/load_secrets.sh old mode 100644 new mode 100755 index 18e338f..7e8684a --- a/load_secrets.sh +++ b/load_secrets.sh @@ -5,6 +5,7 @@ shopt -s nullglob log() { local type="$1"; shift printf '%s [%s] [CMD]: %s\n' "$(date --rfc-3339=seconds)" "$type" "$*" +} error() { log ERROR "$@" >&2 @@ -33,9 +34,13 @@ file_env() { } # Initialize values that might be stored in a file +docker_setup_env() { file_env 'REGISTRY_HOST' '%' file_env 'REGISTRY_SSL' file_env 'REGISTRY_DOMAIN' file_env 'REGISTRY_STORAGE_DELETE_ENABLED' file_env 'REGISTRY_USER' - file_env 'REGISTRY_PASS' + file_env 'REGISTRY_PASS' +} + +docker_setup_env; From ce90547166398d36bc28ddd5acc4ae5115268279 Mon Sep 17 00:00:00 2001 From: moracabanas Date: Thu, 7 Jan 2021 14:07:24 +0100 Subject: [PATCH 5/5] It updated itself --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index ef466c1..9430f00 100644 --- a/package.json +++ b/package.json @@ -20,12 +20,12 @@ "signale": "^1.2.1" }, "devDependencies": { + "@hyperapp/html": "git+https://github.com/maxholman/hyperapp-html.git#5bde674d42c87bb8191f8cc11a8a3c7d334e3dfb", "babel-core": "^6.26.3", "babel-loader": "^7.1.4", "babel-minify-webpack-plugin": "^0.3.1", - "babel-preset-env": "^1.7.0", - "@hyperapp/html": "git+https://github.com/maxholman/hyperapp-html.git#5bde674d42c87bb8191f8cc11a8a3c7d334e3dfb", "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-preset-env": "^1.7.0", "copy-webpack-plugin": "^4.5.4", "css-loader": "^1.0.0", "file-loader": "^2.0.0",