Make the Docker image configurable at runtime

This commit is contained in:
Quentin Gliech 2022-02-02 15:49:58 +01:00
parent 4728b10382
commit 6ebb058e59
No known key found for this signature in database
GPG Key ID: 22D62B84552719FC
3 changed files with 31 additions and 0 deletions

View File

@ -10,5 +10,21 @@ RUN yarn install
COPY . .
RUN yarn build
# Remove the default config, replace it with a symlink to somewhere that will be updated at runtime
RUN rm -f target/config.json \
&& ln -sf /tmp/config.json target/config.json
FROM --platform=${TARGETPLATFORM} docker.io/nginxinc/nginx-unprivileged:1.21-alpine
# Copy the config template as well as the templating script
COPY ./docker/config.json.tmpl /config.json.tmpl
COPY ./docker/config-template.sh /docker-entrypoint.d/99-config-template.sh
# Copy the built app from the first build stage
COPY --from=builder /app/target /usr/share/nginx/html
# Values from the default config that can be overridden at runtime
ENV PUSH_APP_ID="io.element.hydrogen.web" \
PUSH_GATEWAY_URL="https://matrix.org" \
PUSH_APPLICATION_SERVER_KEY="BC-gpSdVHEXhvHSHS0AzzWrQoukv2BE7KzpoPO_FfPacqOo3l1pdqz7rSgmB04pZCWaHPz7XRe6fjLaC-WPDopM" \
DEFAULT_HOMESERVER="matrix.org"

7
docker/config-template.sh Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
set -eux
envsubst '$PUSH_APP_ID,$PUSH_GATEWAY_URL,$PUSH_APPLICATION_SERVER_KEY,$DEFAULT_HOMESERVER' \
< /config.json.tmpl \
> /tmp/config.json

8
docker/config.json.tmpl Normal file
View File

@ -0,0 +1,8 @@
{
"push": {
"appId": "$PUSH_APP_ID",
"gatewayUrl": "$PUSH_GATEWAY_URL",
"applicationServerKey": "$PUSH_APPLICATION_SERVER_KEY"
},
"defaultHomeServer": "$DEFAULT_HOMESERVER"
}