From b804a488c5fbee3b8f74df6334cba0f37e27e228 Mon Sep 17 00:00:00 2001 From: Georgios Kalpakas Date: Wed, 8 Mar 2017 16:30:55 +0200 Subject: [PATCH] feat(aio): make it easy to keep relevant logs outside the docker container --- aio/aio-builds-setup/dockerbuild/Dockerfile | 3 +++ aio/aio-builds-setup/dockerbuild/nginx/aio-builds.conf | 9 +++++++++ aio/aio-builds-setup/dockerbuild/scripts-sh/init.sh | 3 +++ aio/aio-builds-setup/docs/NOTES.md | 1 + 4 files changed, 16 insertions(+) diff --git a/aio/aio-builds-setup/dockerbuild/Dockerfile b/aio/aio-builds-setup/dockerbuild/Dockerfile index 40f673b0db..5351b5f95f 100644 --- a/aio/aio-builds-setup/dockerbuild/Dockerfile +++ b/aio/aio-builds-setup/dockerbuild/Dockerfile @@ -42,6 +42,7 @@ ENV AIO_BUILDS_DIR=$AIO_BUILDS_DIR TEST_AIO_BUILDS_DIR=$TEST AIO_GITHUB_TEAM_SLUGS=$AIO_GITHUB_TEAM_SLUGS TEST_AIO_GITHUB_TEAM_SLUGS=$TEST_AIO_GITHUB_TEAM_SLUGS \ AIO_LOCALCERTS_DIR=/etc/ssl/localcerts TEST_AIO_LOCALCERTS_DIR=/etc/ssl/localcerts-test \ AIO_NGINX_HOSTNAME=$AIO_NGINX_HOSTNAME TEST_AIO_NGINX_HOSTNAME=$TEST_AIO_NGINX_HOSTNAME \ + AIO_NGINX_LOGS_DIR=/var/log/aio/nginx TEST_AIO_NGINX_LOGS_DIR=/var/log/aio/nginx-test \ AIO_NGINX_PORT_HTTP=$AIO_NGINX_PORT_HTTP TEST_AIO_NGINX_PORT_HTTP=$TEST_AIO_NGINX_PORT_HTTP \ AIO_NGINX_PORT_HTTPS=$AIO_NGINX_PORT_HTTPS TEST_AIO_NGINX_PORT_HTTPS=$TEST_AIO_NGINX_PORT_HTTPS \ AIO_REPO_SLUG=$AIO_REPO_SLUG TEST_AIO_REPO_SLUG=$TEST_AIO_REPO_SLUG \ @@ -108,6 +109,7 @@ COPY nginx/aio-builds.conf /etc/nginx/sites-available/aio-builds-prod.conf RUN sed -i "s|{{\$AIO_BUILDS_DIR}}|$AIO_BUILDS_DIR|" /etc/nginx/sites-available/aio-builds-prod.conf RUN sed -i "s|{{\$AIO_DOMAIN_NAME}}|$AIO_DOMAIN_NAME|" /etc/nginx/sites-available/aio-builds-prod.conf RUN sed -i "s|{{\$AIO_LOCALCERTS_DIR}}|$AIO_LOCALCERTS_DIR|" /etc/nginx/sites-available/aio-builds-prod.conf +RUN sed -i "s|{{\$AIO_NGINX_LOGS_DIR}}|$AIO_NGINX_LOGS_DIR|" /etc/nginx/sites-available/aio-builds-prod.conf RUN sed -i "s|{{\$AIO_NGINX_PORT_HTTP}}|$AIO_NGINX_PORT_HTTP|" /etc/nginx/sites-available/aio-builds-prod.conf RUN sed -i "s|{{\$AIO_NGINX_PORT_HTTPS}}|$AIO_NGINX_PORT_HTTPS|" /etc/nginx/sites-available/aio-builds-prod.conf RUN sed -i "s|{{\$AIO_UPLOAD_HOSTNAME}}|$AIO_UPLOAD_HOSTNAME|" /etc/nginx/sites-available/aio-builds-prod.conf @@ -119,6 +121,7 @@ COPY nginx/aio-builds.conf /etc/nginx/sites-available/aio-builds-test.conf RUN sed -i "s|{{\$AIO_BUILDS_DIR}}|$TEST_AIO_BUILDS_DIR|" /etc/nginx/sites-available/aio-builds-test.conf RUN sed -i "s|{{\$AIO_DOMAIN_NAME}}|$TEST_AIO_DOMAIN_NAME|" /etc/nginx/sites-available/aio-builds-test.conf RUN sed -i "s|{{\$AIO_LOCALCERTS_DIR}}|$TEST_AIO_LOCALCERTS_DIR|" /etc/nginx/sites-available/aio-builds-test.conf +RUN sed -i "s|{{\$AIO_NGINX_LOGS_DIR}}|$TEST_AIO_NGINX_LOGS_DIR|" /etc/nginx/sites-available/aio-builds-test.conf RUN sed -i "s|{{\$AIO_NGINX_PORT_HTTP}}|$TEST_AIO_NGINX_PORT_HTTP|" /etc/nginx/sites-available/aio-builds-test.conf RUN sed -i "s|{{\$AIO_NGINX_PORT_HTTPS}}|$TEST_AIO_NGINX_PORT_HTTPS|" /etc/nginx/sites-available/aio-builds-test.conf RUN sed -i "s|{{\$AIO_UPLOAD_HOSTNAME}}|$TEST_AIO_UPLOAD_HOSTNAME|" /etc/nginx/sites-available/aio-builds-test.conf diff --git a/aio/aio-builds-setup/dockerbuild/nginx/aio-builds.conf b/aio/aio-builds-setup/dockerbuild/nginx/aio-builds.conf index e8e8f0f161..65f38a633c 100644 --- a/aio/aio-builds-setup/dockerbuild/nginx/aio-builds.conf +++ b/aio/aio-builds-setup/dockerbuild/nginx/aio-builds.conf @@ -5,6 +5,9 @@ server { listen {{$AIO_NGINX_PORT_HTTP}} default_server; listen [::]:{{$AIO_NGINX_PORT_HTTP}}; + access_log {{$AIO_NGINX_LOGS_DIR}}/access.log; + error_log {{$AIO_NGINX_LOGS_DIR}}/error.log; + # Ideally we want 308 (permanent + keep original method), # but it is relatively new and not supported by some clients (e.g. cURL). return 307 https://$host:{{$AIO_NGINX_PORT_HTTPS}}$request_uri; @@ -24,6 +27,9 @@ server { disable_symlinks on from=$document_root; index index.html; + access_log {{$AIO_NGINX_LOGS_DIR}}/access.log; + error_log {{$AIO_NGINX_LOGS_DIR}}/error.log; + location "~/[^/]+\.[^/]+$" { try_files $uri $uri/ =404; } @@ -43,6 +49,9 @@ server { ssl_certificate {{$AIO_LOCALCERTS_DIR}}/{{$AIO_DOMAIN_NAME}}.crt; ssl_certificate_key {{$AIO_LOCALCERTS_DIR}}/{{$AIO_DOMAIN_NAME}}.key; + access_log {{$AIO_NGINX_LOGS_DIR}}/access.log; + error_log {{$AIO_NGINX_LOGS_DIR}}/error.log; + # Health check location "~^/health-check/?$" { add_header Content-Type text/plain; diff --git a/aio/aio-builds-setup/dockerbuild/scripts-sh/init.sh b/aio/aio-builds-setup/dockerbuild/scripts-sh/init.sh index 2ee7b982da..7162b9223b 100755 --- a/aio/aio-builds-setup/dockerbuild/scripts-sh/init.sh +++ b/aio/aio-builds-setup/dockerbuild/scripts-sh/init.sh @@ -6,6 +6,9 @@ exec 2>&1 # Start the services echo [`date`] - Starting services... +mkdir -p $AIO_NGINX_LOGS_DIR +mkdir -p $TEST_AIO_NGINX_LOGS_DIR + service rsyslog start service cron start service dnsmasq start diff --git a/aio/aio-builds-setup/docs/NOTES.md b/aio/aio-builds-setup/docs/NOTES.md index a75289ec7e..cd9430e714 100644 --- a/aio/aio-builds-setup/docs/NOTES.md +++ b/aio/aio-builds-setup/docs/NOTES.md @@ -22,6 +22,7 @@ [-v :/etc/ssl/localcerts:ro] \ -v :/aio-secrets:ro \ -v :/var/www/aio-builds \ + [-v :/var/log/aio] \ [:] `