From 3d25e3da57577e3023cee1cd461f15f5baa68dab Mon Sep 17 00:00:00 2001 From: Jason Wilder Date: Mon, 5 May 2014 10:59:23 -0600 Subject: [PATCH] Initial commit --- Dockerfile | 26 ++++++++++++++++++++++++++ nginx.tmpl | 22 ++++++++++++++++++++++ supervisor.conf | 11 +++++++++++ 3 files changed, 59 insertions(+) create mode 100644 Dockerfile create mode 100644 nginx.tmpl create mode 100644 supervisor.conf diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..cf7715f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +FROM ubuntu:12.04 +MAINTAINER Jason Wilder jwilder@litl.com + +# Install Nginx. +RUN apt-get update +RUN apt-get install -y python-software-properties wget supervisor +RUN add-apt-repository -y ppa:nginx/stable + +RUN apt-get update +RUN apt-get install -y nginx +RUN echo "daemon off;" >> /etc/nginx/nginx.conf + +RUN mkdir /app +WORKDIR /app +ADD . /app + +RUN wget https://github.com/jwilder/docker-gen/releases/download/0.1.2/docker-gen-linux-amd64-0.1.2.tar.gz +RUN tar xvzf docker-gen-linux-amd64-0.1.2.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"] diff --git a/nginx.tmpl b/nginx.tmpl new file mode 100644 index 0000000..bb95184 --- /dev/null +++ b/nginx.tmpl @@ -0,0 +1,22 @@ +{{ range $host, $containers := groupBy $ "Env.VIRTUAL_HOST" }} +upstream {{ $host }} { + +{{ range $index, $value := $containers }} + {{ with $address := index $value.Addresses 0 }} + server {{ $value.Gateway }}:{{ $address.HostPort }}; + {{ end }} +{{ end }} + +} + +server { + gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; + + server_name {{ $host }}; + + location / { + proxy_pass http://{{ $host }}; + include /etc/nginx/proxy_params; + } +} +{{ end }} diff --git a/supervisor.conf b/supervisor.conf new file mode 100644 index 0000000..c9966d9 --- /dev/null +++ b/supervisor.conf @@ -0,0 +1,11 @@ +[supervisord] +nodaemon=true + +[program:nginx] +command=nginx +directory=/etc/nginx + +[program:docker-gen] +command=./docker-gen -watch -notify "nginx -s reload" /app/nginx.tmpl /etc/nginx/sites-enabled/default +directory=/app +