From a4b00222abed1849b0bdc8d52e410328356a9a23 Mon Sep 17 00:00:00 2001 From: David Parrish Date: Mon, 23 Nov 2015 00:03:14 -0500 Subject: [PATCH 1/4] Use jwilder/nginx-proxy as base image and reduce final image size --- Dockerfile | 30 ++++-------------------------- install_simp_le.sh | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 26 deletions(-) create mode 100755 install_simp_le.sh diff --git a/Dockerfile b/Dockerfile index 8e34333..d3ebba3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,31 +1,9 @@ FROM jwilder/nginx-proxy -MAINTAINER [ "David Parrish ", "Hadrien Mary " ] -RUN apt-get update - -# Install python packages needed by simp_le -RUN apt-get install -y -q --no-install-recommends python python-requests - -# Install python packages needed to build simp_le -RUN apt-get install -y -q --no-install-recommends git gcc libssl-dev libffi-dev python-dev python-pip - -# Get Let's Encrypt simp_le client source -RUN git -C /opt clone https://github.com/kuba/simp_le.git - -WORKDIR /opt/simp_le -# Upgrade setuptools -RUN pip install -U setuptools -# Install simp_le in /usr/local/bin -RUN python ./setup.py install - -# Make house cleaning -RUN rm -rf /opt/simp_le - -RUN apt-get autoremove -y git gcc libssl-dev libffi-dev python-dev python-pip - -RUN apt-get clean all -RUN rm -r /var/lib/apt/lists/* +MAINTAINER David Parrish +MAINTAINER Yves Blusseau <90z7oey02@sneakemail.com> COPY . /app/ -WORKDIR /app/ +# Install simp_le program +RUN chmod +rx /app/install_simp_le.sh && /app/install_simp_le.sh && rm -f /app/install_simp_le.sh diff --git a/install_simp_le.sh b/install_simp_le.sh new file mode 100755 index 0000000..194e16f --- /dev/null +++ b/install_simp_le.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +set -e + +apt-get update + +# Install python packages needed by simp_le +apt-get install -y -q --no-install-recommends python python-requests + +# Install python packages needed to build simp_le +apt-get install -y -q --no-install-recommends git gcc libssl-dev libffi-dev python-dev python-pip + +# Get Let's Encrypt simp_le client source +git -C /opt clone https://github.com/kuba/simp_le.git + +cd /opt/simp_le +# Upgrade setuptools +pip install -U setuptools +# Install simp_le in /usr/local/bin +python ./setup.py install + +# Make house cleaning +rm -rf /opt/simp_le + +apt-get autoremove -y git gcc libssl-dev libffi-dev python-dev python-pip + +apt-get clean all +rm -r /var/lib/apt/lists/* From 109017566a8fcd7df85d15fb093211a159ce3ffe Mon Sep 17 00:00:00 2001 From: JrCs <90z7oey02@sneakemail.com> Date: Fri, 27 Nov 2015 12:45:40 +0100 Subject: [PATCH 2/4] Add Hadrien Mary as maintainer --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index d3ebba3..27ced08 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,7 @@ FROM jwilder/nginx-proxy MAINTAINER David Parrish MAINTAINER Yves Blusseau <90z7oey02@sneakemail.com> +MAINTAINER Hadrien Mary COPY . /app/ From 7b40ad970f351dacbd86314cf84b9b381b96f45e Mon Sep 17 00:00:00 2001 From: JrCs <90z7oey02@sneakemail.com> Date: Fri, 27 Nov 2015 12:46:12 +0100 Subject: [PATCH 3/4] Reload nginx if certificates has been created/updated --- letsencrypt_service | 10 ++++++---- update_nginx | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/letsencrypt_service b/letsencrypt_service index 762be82..f290b70 100755 --- a/letsencrypt_service +++ b/letsencrypt_service @@ -10,6 +10,7 @@ update_certs() { # Load relevant container settings source "$DIR"/letsencrypt_service_data + reload_nginx='false' for cid in "${LETSENCRYPT_CONTAINERS[@]}"; do # Derive host and email variable names host_varname="LETSENCRYPT_${cid}_HOST" @@ -36,14 +37,15 @@ update_certs() { # Symlink to created certificate and key. ln -sf ./$domain/fullchain.pem /etc/nginx/certs/$domain".crt" ln -sf ./$domain/key.pem /etc/nginx/certs/$domain".key" - - # Update certificates configuration in nginx - /usr/local/bin/docker-gen -only-exposed /app/nginx.tmpl /etc/nginx/conf.d/default.conf - nginx -s reload + reload_nginx='true' fi done done unset LETSENCRYPT_CONTAINERS + if [[ "$reload_nginx" == 'true' ]]; then + /usr/local/bin/docker-gen -only-exposed /app/nginx.tmpl /etc/nginx/conf.d/default.conf + nginx -s reload + fi } pid= diff --git a/update_nginx b/update_nginx index 91c10e9..3a2df5b 100755 --- a/update_nginx +++ b/update_nginx @@ -1,8 +1,8 @@ #!/bin/bash +nginx -s reload + docker-gen \ -only-exposed \ -notify '/app/update_certs' \ /app/letsencrypt_service_data.tmpl /app/letsencrypt_service_data - -nginx -s reload From 573aa7e82e46338829934867f97d6bd1f3c5dc5a Mon Sep 17 00:00:00 2001 From: JrCs <90z7oey02@sneakemail.com> Date: Fri, 27 Nov 2015 13:03:30 +0100 Subject: [PATCH 4/4] Add badge with image size --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 82e15b8..f70eb48 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![nginx 1.9.6](https://img.shields.io/badge/nginx-1.9.6-brightgreen.svg) ![License MIT](https://img.shields.io/badge/license-MIT-blue.svg) [![Build](https://circleci.com/gh/dmp1ce/nginx-proxy-letsencrypt.svg?&style=shield&circle-token=cd873b9ebad6424218c4dee8e8e2344366920dde)](https://circleci.com/gh/dmp1ce/nginx-proxy-letsencrypt) +![nginx 1.9.6](https://img.shields.io/badge/nginx-1.9.6-brightgreen.svg) ![License MIT](https://img.shields.io/badge/license-MIT-blue.svg) [![Build](https://circleci.com/gh/dmp1ce/nginx-proxy-letsencrypt.svg?&style=shield&circle-token=cd873b9ebad6424218c4dee8e8e2344366920dde)](https://circleci.com/gh/dmp1ce/nginx-proxy-letsencrypt) [![](https://badge.imagelayers.io/dmp1ce/nginx-proxy-letsencrypt:latest.svg)](https://imagelayers.io/?images=dmp1ce/nginx-proxy-letsencrypt:latest 'Get your own badge on imagelayers.io') nginx-proxy sets up a container running nginx and [docker-gen][1]. docker-gen generates reverse proxy configs for nginx and reloads nginx when containers are started and stopped.