feat: add sh entrypoint to allow MEMOS_DSN_FILE to load variable from secret (#4236)

Add sh entrypoint to allow MEMOS_DSN_FILE to load variable from secret
This commit is contained in:
Hadley Rich 2024-12-30 22:46:02 +13:00 committed by GitHub
parent 7817ad07f7
commit 82b5c8ab07
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 29 additions and 1 deletions

View file

@ -27,6 +27,7 @@ RUN apk add --no-cache tzdata
ENV TZ="UTC"
COPY --from=backend /backend-build/memos /usr/local/memos/
COPY entrypoint.sh /usr/local/memos/
EXPOSE 5230
@ -37,4 +38,4 @@ VOLUME /var/opt/memos
ENV MEMOS_MODE="prod"
ENV MEMOS_PORT="5230"
ENTRYPOINT ["./memos"]
ENTRYPOINT ["./entrypoint.sh", "./memos"]

27
entrypoint.sh Executable file
View file

@ -0,0 +1,27 @@
#!/usr/bin/env sh
file_env() {
var="$1"
fileVar="${var}_FILE"
val_var="$(printenv "$var")"
val_fileVar="$(printenv "$fileVar")"
if [ -n "$val_var" ] && [ -n "$val_fileVar" ]; then
echo "error: both $var and $fileVar are set (but are exclusive)" >&2
exit 1
fi
if [ -n "$val_var" ]; then
val="$val_var"
elif [ -n "$val_fileVar" ]; then
val="$(cat "$val_fileVar")"
fi
export "$var"="$val"
unset "$fileVar"
}
file_env "MEMOS_DSN"
exec "$@"