diff --git a/Dockerfile b/Dockerfile index eaf4f8d..5b5a5d9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -65,7 +65,7 @@ RUN echo "daemon off;" >> /etc/nginx/nginx.conf \ COPY --from=forego /usr/local/bin/forego /usr/local/bin/forego COPY --from=dockergen /usr/local/bin/docker-gen /usr/local/bin/docker-gen -COPY network_internal.conf /etc/nginx/ +COPY network_internal.conf maintenance_internal.conf /etc/nginx/ COPY app nginx.tmpl LICENSE /app/ WORKDIR /app/ diff --git a/Dockerfile.alpine b/Dockerfile.alpine index 55a7c6c..8b4bf73 100644 --- a/Dockerfile.alpine +++ b/Dockerfile.alpine @@ -62,7 +62,7 @@ RUN echo "daemon off;" >> /etc/nginx/nginx.conf \ COPY --from=forego /usr/local/bin/forego /usr/local/bin/forego COPY --from=dockergen /usr/local/bin/docker-gen /usr/local/bin/docker-gen -COPY network_internal.conf /etc/nginx/ +COPY network_internal.conf maintenance_internal.conf /etc/nginx/ COPY app nginx.tmpl LICENSE /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 e8a555d..272fe24 100644 --- a/nginx.tmpl +++ b/nginx.tmpl @@ -231,6 +231,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; } @@ -243,6 +246,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;