diff --git a/Dockerfile b/Dockerfile index c528481..505fd25 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,7 +24,7 @@ RUN wget https://github.com/jwilder/docker-gen/releases/download/$DOCKER_GEN_VER && tar -C /usr/local/bin -xvzf docker-gen-linux-amd64-$DOCKER_GEN_VERSION.tar.gz \ && rm /docker-gen-linux-amd64-$DOCKER_GEN_VERSION.tar.gz -COPY network_internal.conf /etc/nginx/ +COPY network_internal.conf maintenance_internal.conf /etc/nginx/ COPY . /app/ WORKDIR /app/ diff --git a/Dockerfile.alpine b/Dockerfile.alpine index 4b5545b..44f23ec 100644 --- a/Dockerfile.alpine +++ b/Dockerfile.alpine @@ -21,7 +21,7 @@ RUN wget --quiet https://github.com/jwilder/docker-gen/releases/download/$DOCKER && tar -C /usr/local/bin -xvzf docker-gen-alpine-linux-amd64-$DOCKER_GEN_VERSION.tar.gz \ && rm /docker-gen-alpine-linux-amd64-$DOCKER_GEN_VERSION.tar.gz -COPY network_internal.conf /etc/nginx/ +COPY network_internal.conf maintenance_internal.conf /etc/nginx/ COPY . /app/ WORKDIR /app/ diff --git a/maintenance_internal.conf b/maintenance_internal.conf new file mode 100644 index 0000000..d643913 --- /dev/null +++ b/maintenance_internal.conf @@ -0,0 +1,8 @@ +error_page 503 @maintenance; +recursive_error_pages on; +location @maintenance { + error_page 405 = /index.html; + add_header Cache-Control no-cache; + root /usr/share/nginx/html/maintenance; + rewrite ^(.*)$ /index.html break; +} diff --git a/nginx.tmpl b/nginx.tmpl index 07e2b50..c27972e 100644 --- a/nginx.tmpl +++ b/nginx.tmpl @@ -148,6 +148,9 @@ server { listen [::]:{{ $external_http_port }}; {{ end }} {{ $access_log }} + {{ if (exists "/usr/share/nginx/html/maintenance/index.html") }} + include /etc/nginx/maintenance_internal.conf; + {{ end }} return 503; } @@ -159,6 +162,9 @@ server { listen [::]:{{ $external_https_port }} ssl http2; {{ end }} {{ $access_log }} + {{ if (exists "/usr/share/nginx/html/maintenance/index.html") }} + include /etc/nginx/maintenance_internal.conf; + {{ end }} return 503; ssl_session_cache shared:SSL:50m;