From daefcfcaeb3ccc5925901e071dae6320614d8204 Mon Sep 17 00:00:00 2001 From: 3wc <3wc@doesthisthing.work> Date: Mon, 6 May 2024 13:47:53 -0300 Subject: [PATCH] Add _FILE environment variable loading --- payload/Dockerfile | 4 +++- payload/docker-entrypoint.sh | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100755 payload/docker-entrypoint.sh diff --git a/payload/Dockerfile b/payload/Dockerfile index 1383e1e..fd29dfe 100644 --- a/payload/Dockerfile +++ b/payload/Dockerfile @@ -26,4 +26,6 @@ COPY --from=build /build/tsconfig.json ./tsconfig.json COPY --from=build /build/dist ./dist COPY --from=build /build/build ./build EXPOSE 3000 -CMD ["yarn", "serve"] \ No newline at end of file +COPY docker-entrypoint.sh /docker-entrypoint.sh +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["yarn", "serve"] diff --git a/payload/docker-entrypoint.sh b/payload/docker-entrypoint.sh new file mode 100755 index 0000000..33a2d8b --- /dev/null +++ b/payload/docker-entrypoint.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +set -eu + +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + + export "$var"="$val" + unset "$fileVar" +} + +file_env "TOKEN" +file_env "MONGODB_PASSWORD" +file_env "PAYLOAD_SECRET" + +export MONGODB_URI="mongodb://$MONGODB_USER:$MONGODB_PASSWORD@$MONGODB_HOST:$MONGODB_PORT" + +"$@"