diff --git a/docker-compose.override.yaml.example b/docker-compose.override.yaml.example index 7ad2b089..b8b6a9c2 100644 --- a/docker-compose.override.yaml.example +++ b/docker-compose.override.yaml.example @@ -23,7 +23,7 @@ services: # - ./custom/www:/opt/chatmail-www ## Debug — mount scripts from the repo for live editing: - # - ./docker/files/setup_chatmail_docker.sh:/setup_chatmail_docker.sh + # - ./docker/files/chatmail-init.sh:/chatmail-init.sh # - ./docker/files/entrypoint.sh:/entrypoint.sh # environment: diff --git a/docker/chatmail_relay.dockerfile b/docker/chatmail_relay.dockerfile index 6a6debe7..6414215c 100644 --- a/docker/chatmail_relay.dockerfile +++ b/docker/chatmail_relay.dockerfile @@ -77,14 +77,14 @@ ENV TZ=:/etc/localtime ENV PATH="/opt/cmdeploy/bin:${PATH}" RUN ln -s /etc/chatmail/chatmail.ini /opt/chatmail/chatmail.ini -ARG SETUP_CHATMAIL_SERVICE_PATH=/lib/systemd/system/setup_chatmail.service -COPY ./docker/files/setup_chatmail.service "$SETUP_CHATMAIL_SERVICE_PATH" -RUN ln -sf "$SETUP_CHATMAIL_SERVICE_PATH" "/etc/systemd/system/multi-user.target.wants/setup_chatmail.service" +ARG CHATMAIL_INIT_SERVICE_PATH=/lib/systemd/system/chatmail-init.service +COPY ./docker/files/chatmail-init.service "$CHATMAIL_INIT_SERVICE_PATH" +RUN ln -sf "$CHATMAIL_INIT_SERVICE_PATH" "/etc/systemd/system/multi-user.target.wants/chatmail-init.service" # Remove default nginx site config at build time (not in entrypoint) RUN rm -f /etc/nginx/sites-enabled/default -COPY --chmod=555 ./docker/files/setup_chatmail_docker.sh /setup_chatmail_docker.sh +COPY --chmod=555 ./docker/files/chatmail-init.sh /chatmail-init.sh COPY --chmod=555 ./docker/files/entrypoint.sh /entrypoint.sh # Certificate monitoring as a proper systemd timer (not a background process) diff --git a/docker/files/chatmail-certmon.service b/docker/files/chatmail-certmon.service index f89b950f..58ab9a04 100644 --- a/docker/files/chatmail-certmon.service +++ b/docker/files/chatmail-certmon.service @@ -1,6 +1,6 @@ [Unit] Description=Check TLS certificate changes and reload services -After=setup_chatmail.service +After=chatmail-init.service [Service] Type=oneshot diff --git a/docker/files/setup_chatmail.service b/docker/files/chatmail-init.service similarity index 69% rename from docker/files/setup_chatmail.service rename to docker/files/chatmail-init.service index 2a0a48bc..9e0a517b 100644 --- a/docker/files/setup_chatmail.service +++ b/docker/files/chatmail-init.service @@ -1,11 +1,11 @@ [Unit] Description=Run container setup commands After=multi-user.target -ConditionPathExists=/setup_chatmail_docker.sh +ConditionPathExists=/chatmail-init.sh [Service] Type=oneshot -ExecStart=/bin/bash /setup_chatmail_docker.sh +ExecStart=/bin/bash /chatmail-init.sh RemainAfterExit=true WorkingDirectory=/opt/chatmail PassEnvironment= diff --git a/docker/files/setup_chatmail_docker.sh b/docker/files/chatmail-init.sh similarity index 100% rename from docker/files/setup_chatmail_docker.sh rename to docker/files/chatmail-init.sh diff --git a/docker/files/entrypoint.sh b/docker/files/entrypoint.sh index e7629587..55060296 100755 --- a/docker/files/entrypoint.sh +++ b/docker/files/entrypoint.sh @@ -1,12 +1,12 @@ #!/bin/bash set -eo pipefail -SETUP_CHATMAIL_SERVICE_PATH="${SETUP_CHATMAIL_SERVICE_PATH:-/lib/systemd/system/setup_chatmail.service}" +CHATMAIL_INIT_SERVICE_PATH="${CHATMAIL_INIT_SERVICE_PATH:-/lib/systemd/system/chatmail-init.service}" -# Whitelist only the env vars needed by setup_chatmail_docker.sh. +# Whitelist only the env vars needed by chatmail-init.sh. # Forwarding all env vars (via printenv) would leak Docker internals, # orchestrator secrets, and other unrelated variables into systemd. env_vars="MAIL_DOMAIN CMDEPLOY_STAGES CHATMAIL_INI TLS_EXTERNAL_CERT_AND_KEY PATH" -sed -i "s||$env_vars|g" "$SETUP_CHATMAIL_SERVICE_PATH" +sed -i "s||$env_vars|g" "$CHATMAIL_INIT_SERVICE_PATH" exec /lib/systemd/systemd "$@"