diff --git a/.travis.yml b/.travis.yml index 7a1c66f..4d83f8e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,8 @@ env: matrix: - TEST_TARGET: test-debian - TEST_TARGET: test-alpine + - TEST_TARGET: test-mainline + - TEST_TARGET: test-mainline-alpine before_install: - sudo apt-get -y remove docker docker-engine docker-ce diff --git a/Dockerfile.mainline b/Dockerfile.mainline new file mode 100644 index 0000000..200de0a --- /dev/null +++ b/Dockerfile.mainline @@ -0,0 +1,37 @@ +FROM nginx:mainline +LABEL maintainer="Jason Wilder mail@jasonwilder.com" + +# Install wget and install/updates certificates +RUN apt-get update \ + && apt-get install -y -q --no-install-recommends \ + ca-certificates \ + wget \ + && apt-get clean \ + && rm -r /var/lib/apt/lists/* + + +# Configure Nginx and apply fix for very long server names +RUN echo "daemon off;" >> /etc/nginx/nginx.conf \ + && sed -i 's/worker_processes 1/worker_processes auto/' /etc/nginx/nginx.conf + +# Install Forego +ADD https://github.com/jwilder/forego/releases/download/v0.16.1/forego /usr/local/bin/forego +RUN chmod u+x /usr/local/bin/forego + +ENV DOCKER_GEN_VERSION 0.7.4 + +RUN wget https://github.com/jwilder/docker-gen/releases/download/$DOCKER_GEN_VERSION/docker-gen-linux-amd64-$DOCKER_GEN_VERSION.tar.gz \ + && tar -C /usr/local/bin -xvzf docker-gen-linux-amd64-$DOCKER_GEN_VERSION.tar.gz \ + && rm /docker-gen-linux-amd64-$DOCKER_GEN_VERSION.tar.gz + +COPY network_internal.conf /etc/nginx/ + +COPY . /app/ +WORKDIR /app/ + +ENV DOCKER_HOST unix:///tmp/docker.sock + +VOLUME ["/etc/nginx/certs", "/etc/nginx/dhparam"] + +ENTRYPOINT ["/app/docker-entrypoint.sh"] +CMD ["forego", "start", "-r"] diff --git a/Dockerfile.mainline.alpine b/Dockerfile.mainline.alpine new file mode 100644 index 0000000..9805f9c --- /dev/null +++ b/Dockerfile.mainline.alpine @@ -0,0 +1,34 @@ +FROM nginx:mainline-alpine +LABEL maintainer="Jason Wilder mail@jasonwilder.com" + +# Install wget and install/updates certificates +RUN apk add --no-cache --virtual .run-deps \ + ca-certificates bash wget openssl \ + && update-ca-certificates + + +# Configure Nginx and apply fix for very long server names +RUN echo "daemon off;" >> /etc/nginx/nginx.conf \ + && sed -i 's/worker_processes 1/worker_processes auto/' /etc/nginx/nginx.conf + +# Install Forego +ADD https://github.com/jwilder/forego/releases/download/v0.16.1/forego /usr/local/bin/forego +RUN chmod u+x /usr/local/bin/forego + +ENV DOCKER_GEN_VERSION 0.7.4 + +RUN wget --quiet https://github.com/jwilder/docker-gen/releases/download/$DOCKER_GEN_VERSION/docker-gen-alpine-linux-amd64-$DOCKER_GEN_VERSION.tar.gz \ + && tar -C /usr/local/bin -xvzf docker-gen-alpine-linux-amd64-$DOCKER_GEN_VERSION.tar.gz \ + && rm /docker-gen-alpine-linux-amd64-$DOCKER_GEN_VERSION.tar.gz + +COPY network_internal.conf /etc/nginx/ + +COPY . /app/ +WORKDIR /app/ + +ENV DOCKER_HOST unix:///tmp/docker.sock + +VOLUME ["/etc/nginx/certs", "/etc/nginx/dhparam"] + +ENTRYPOINT ["/app/docker-entrypoint.sh"] +CMD ["forego", "start", "-r"] diff --git a/Makefile b/Makefile index 5f965f7..faf9642 100644 --- a/Makefile +++ b/Makefile @@ -13,4 +13,12 @@ test-alpine: update-dependencies docker build -f Dockerfile.alpine -t jwilder/nginx-proxy:test . test/pytest.sh -test: test-debian test-alpine +test-mainline:update-dependencies + docker build -f Dockerfile.mainline -t jwilder/nginx-proxy:test . + test/pytest.sh + +test-mainline-alpine:update-dependencies + docker build -f Dockerfile.mainline.alpine -t jwilder/nginx-proxy:test . + test/pytest.sh + +test: test-debian test-alpine test-mainline-alpine test-mainline