From a38ca513805d892b6db07e6bf6a940b3c03f5469 Mon Sep 17 00:00:00 2001 From: bunkerity Date: Mon, 8 Aug 2022 10:16:52 +0200 Subject: [PATCH] docker - dont generate config if already present --- autoconf/Dockerfile | 2 +- helpers/entrypoint.sh | 33 ++++++++++++++++++++------------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/autoconf/Dockerfile b/autoconf/Dockerfile index db954e893..6a890e2ae 100644 --- a/autoconf/Dockerfile +++ b/autoconf/Dockerfile @@ -48,7 +48,7 @@ RUN apk add --no-cache git && \ ln -s /proc/1/fd/1 /var/log/letsencrypt/letsencrypt.log # Fix CVEs -RUN apk add "libssl1.1>=1.1.1q-r0" "libcrypto1.1>=1.1.1q-r0" "git>=2.32.3-r0" "ncurses-libs>=6.2_p20210612-r1" "ncurses-terminfo-base>=6.2_p20210612-r1" "libtirpc>=1.3.2-r1" "zlib>=1.2.12-r2" +RUN apk add "libssl1.1>=1.1.1q-r0" "libcrypto1.1>=1.1.1q-r0" "git>=2.32.3-r0" "ncurses-libs>=6.2_p20210612-r1" "ncurses-terminfo-base>=6.2_p20210612-r1" "libtirpc>=1.3.2-r1" "libtirpc-conf>=1.3.2-r1" "zlib>=1.2.12-r2" VOLUME /data /etc/nginx diff --git a/helpers/entrypoint.sh b/helpers/entrypoint.sh index 5f92da875..68036e385 100644 --- a/helpers/entrypoint.sh +++ b/helpers/entrypoint.sh @@ -44,7 +44,13 @@ if [ -f /opt/bunkerweb/tmp/scheduler.pid ] ; then rm -f /opt/bunkerweb/tmp/scheduler.pid fi -if [ "$SWARM_MODE" != "yes" ] && [ "$KUBERNETES_MODE" != "yes" ] && [ "$AUTOCONF_MODE" != "yes" ] ; then +is_configured=no +if [ -f /etc/nginx/variables.env ] ; then + is_configured=yes + log "ENTRYPOINT" "⚠️" "Looks like BunkerWeb configuration is already generated, will not generate it again" +fi + +if [ "$SWARM_MODE" != "yes" ] && [ "$KUBERNETES_MODE" != "yes" ] && [ "$AUTOCONF_MODE" != "yes" ] && [ "$is_configured" != "yes" ] ; then # extract and drop configs for var_name in $(python3 -c 'import os ; [print(k) for k in os.environ]') ; do extracted=$(echo "$var_name" | sed -r 's/^([0-9a-z\.\-]*)_?CUSTOM_CONF_(HTTP|DEFAULT_SERVER_HTTP|SERVER_HTTP|MODSEC|MODSEC_CRS)_(.*)$/\1 \2 \3/g') @@ -97,19 +103,20 @@ if [ "$SWARM_MODE" != "yes" ] && [ "$KUBERNETES_MODE" != "yes" ] && [ "$AUTOCONF fi # generate final configuration -export TEMP_NGINX="no" -log "ENTRYPOINT" "ℹ️" "Generating configuration ..." -if [ "$SWARM_MODE" = "yes" ] || [ "$KUBERNETES_MODE" = "yes" ] || [ "$AUTOCONF_MODE" = "yes" ] ; then - export SERVER_NAME= +if [ "$is_configured" != "yes" ] ; then + export TEMP_NGINX="no" + log "ENTRYPOINT" "ℹ️" "Generating configuration ..." + if [ "$SWARM_MODE" = "yes" ] || [ "$KUBERNETES_MODE" = "yes" ] || [ "$AUTOCONF_MODE" = "yes" ] ; then + export SERVER_NAME= + fi + get_env > "/tmp/variables.env" + /opt/bunkerweb/gen/main.py --settings /opt/bunkerweb/settings.json --templates /opt/bunkerweb/confs --output /etc/nginx --variables /tmp/variables.env + if [ "$?" -ne 0 ] ; then + log "ENTRYPOINT" "❌" "Generator failed" + exit 1 + fi + log "ENTRYPOINT" "ℹ️" "Generator is successful" fi -get_env > "/tmp/variables.env" -/opt/bunkerweb/gen/main.py --settings /opt/bunkerweb/settings.json --templates /opt/bunkerweb/confs --output /etc/nginx --variables /tmp/variables.env -if [ "$?" -ne 0 ] ; then - log "ENTRYPOINT" "❌" "Generator failed" - exit 1 -fi -log "ENTRYPOINT" "ℹ️" "Generator is successful" - # execute job scheduler if [ "$SWARM_MODE" != "yes" ] && [ "$KUBERNETES_MODE" != "yes" ] && [ "$AUTOCONF_MODE" != "yes" ] ; then log "ENTRYPOINT" "ℹ️" "Executing job scheduler ..."