From 4f3d690cd3f1fa17a7dcd19c46e2d8acdfc96d66 Mon Sep 17 00:00:00 2001 From: Jason Wilder Date: Tue, 3 Jun 2014 16:30:05 -0600 Subject: [PATCH] Stream logs to stdout/err Nginx and docker-gen logs can now be seen via docker logs. --- Dockerfile | 10 +++++----- Procfile | 2 ++ nginx.tmpl | 35 ++++++++++++++++++++--------------- supervisor.conf | 11 ----------- 4 files changed, 27 insertions(+), 31 deletions(-) create mode 100644 Procfile delete mode 100644 supervisor.conf diff --git a/Dockerfile b/Dockerfile index ba56340..283f2e8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ MAINTAINER Jason Wilder jwilder@litl.com # Install Nginx. RUN apt-get update -RUN apt-get install -y python-software-properties wget supervisor +RUN apt-get install -y python-software-properties wget RUN add-apt-repository -y ppa:nginx/stable RUN apt-get update @@ -14,13 +14,13 @@ RUN mkdir /app WORKDIR /app ADD . /app +RUN wget https://github.com/jwilder/forego/releases/download/v0.8.3-p2/forego-v0.8.3-p2-linux-amd64.tar.gz +RUN tar xvzf forego-v0.8.3-p2-linux-amd64.tar.gz && mv forego /usr/local/bin && rm forego-v0.8.3-p2-linux-amd64.tar.gz + RUN wget https://github.com/jwilder/docker-gen/releases/download/0.2.1/docker-gen-linux-amd64-0.2.1.tar.gz RUN tar xvzf docker-gen-linux-amd64-0.2.1.tar.gz -RUN mkdir -p /var/log/supervisor -ADD supervisor.conf /etc/supervisor/conf.d/supervisor.conf - EXPOSE 80 ENV DOCKER_HOST unix:///tmp/docker.sock -CMD ["/usr/bin/supervisord"] +CMD ["forego", "start", "-r"] diff --git a/Procfile b/Procfile new file mode 100644 index 0000000..191d01a --- /dev/null +++ b/Procfile @@ -0,0 +1,2 @@ +nginx: nginx +dockergen: /app/docker-gen -watch -only-exposed -notify "nginx -s reload" /app/nginx.tmpl /etc/nginx/sites-enabled/default diff --git a/nginx.tmpl b/nginx.tmpl index 1d62622..d8bd704 100644 --- a/nginx.tmpl +++ b/nginx.tmpl @@ -1,8 +1,11 @@ server { - listen 80 default_server; - server_name _; # This is just an invalid value which will never trigger on a real hostname. - return 503; + listen 80 default_server; + server_name _; # This is just an invalid value which will never trigger on a real hostname. + error_log /proc/self/fd/2; + access_log /proc/self/fd/1; + return 503; } + {{ range $host, $containers := groupBy $ "Env.VIRTUAL_HOST" }} upstream {{ $host }} { @@ -28,12 +31,12 @@ upstream {{ $host }} { {{/* Else default to standard web port 80 */}} {{ else }} {{ range $i, $address := $value.Addresses }} - {{ if eq $address.Port "80" }} - # {{$value.Name}} - server {{ $address.IP }}:{{ $address.Port }}; - {{ end }} + {{ if eq $address.Port "80" }} + # {{$value.Name}} + server {{ $address.IP }}:{{ $address.Port }}; + {{ end }} {{ end }} - {{ end }} + {{ end }} {{ end }} } @@ -41,15 +44,17 @@ server { gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; server_name {{ $host }}; - proxy_buffering off; + proxy_buffering off; + error_log /proc/self/fd/2; + access_log /proc/self/fd/1; location / { - proxy_pass http://{{ $host }}; - include /etc/nginx/proxy_params; - - # HTTP 1.1 support - proxy_http_version 1.1; - proxy_set_header Connection ""; + proxy_pass http://{{ $host }}; + include /etc/nginx/proxy_params; + + # HTTP 1.1 support + proxy_http_version 1.1; + proxy_set_header Connection ""; } } {{ end }} diff --git a/supervisor.conf b/supervisor.conf deleted file mode 100644 index 6b293b4..0000000 --- a/supervisor.conf +++ /dev/null @@ -1,11 +0,0 @@ -[supervisord] -nodaemon=true - -[program:nginx] -command=nginx -directory=/etc/nginx - -[program:docker-gen] -command=./docker-gen -watch -only-exposed -notify "nginx -s reload" /app/nginx.tmpl /etc/nginx/sites-enabled/default -directory=/app -