83 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
ARG IMAGE=nginxinc/nginx-unprivileged:stable-bullseye
 | 
						|
 | 
						|
FROM $IMAGE AS builder
 | 
						|
 | 
						|
ARG HTTP_SUBSTITUTIONS_VERSION='e12e965ac1837ca709709f9a26f572a54d83430e'
 | 
						|
ARG HEADERS_MORE_VERSION='0.37'
 | 
						|
 | 
						|
USER root
 | 
						|
 | 
						|
RUN set -x \
 | 
						|
    && apt-get update \
 | 
						|
    && apt-get install -y --no-install-recommends \
 | 
						|
        build-essential \
 | 
						|
        libgd-dev \
 | 
						|
        libgeoip-dev \
 | 
						|
        libedit-dev \
 | 
						|
        libxslt1-dev \
 | 
						|
        libssl-dev \
 | 
						|
        libpcre2-dev \
 | 
						|
        libperl-dev \
 | 
						|
        zlib1g-dev \
 | 
						|
        unzip \
 | 
						|
    && rm -rf /var/lib/apt/lists/* \
 | 
						|
    && mkdir -p /usr/src \
 | 
						|
    && curl \
 | 
						|
        -o nginx.tar.gz \
 | 
						|
        https://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz \
 | 
						|
    && curl -L \
 | 
						|
        -o nginx_substitutions_filter.zip \
 | 
						|
        https://codeload.github.com/yaoweibin/ngx_http_substitutions_filter_module/zip/${HTTP_SUBSTITUTIONS_VERSION} \
 | 
						|
    && curl -L \
 | 
						|
        -o headers-more-nginx-module.zip \
 | 
						|
        https://codeload.github.com/openresty/headers-more-nginx-module/zip/refs/tags/v${HEADERS_MORE_VERSION} \
 | 
						|
    && tar -zxC /usr/src -f nginx.tar.gz \
 | 
						|
    && unzip nginx_substitutions_filter.zip -d /usr/src \
 | 
						|
    && unzip headers-more-nginx-module.zip -d /usr/src \
 | 
						|
    && rm nginx.tar.gz \
 | 
						|
    && rm nginx_substitutions_filter.zip \
 | 
						|
    && rm headers-more-nginx-module.zip \
 | 
						|
    && cd /usr/src/nginx-${NGINX_VERSION} \
 | 
						|
    && set -eux \
 | 
						|
    && eval ./configure $(nginx -V 2>&1 | sed -n -e "s/^.*configure arguments: //p") \
 | 
						|
        --add-dynamic-module=/usr/src/ngx_http_substitutions_filter_module-${HTTP_SUBSTITUTIONS_VERSION} \
 | 
						|
        --add-dynamic-module=/usr/src/headers-more-nginx-module-${HEADERS_MORE_VERSION} \
 | 
						|
        --with-http_sub_module \
 | 
						|
    && set +eux \
 | 
						|
    && make \
 | 
						|
    && make install
 | 
						|
 | 
						|
 | 
						|
 | 
						|
FROM $IMAGE
 | 
						|
 | 
						|
ARG BUILD_DATE=01.01.1970
 | 
						|
ARG IMG_TITLE=docker-image
 | 
						|
ARG IMAGE_VERSION=0
 | 
						|
ARG SRC_REV=0
 | 
						|
 | 
						|
COPY --from=builder --chown=root:root --chmod=0644 /usr/lib/nginx/modules/ngx_http_subs_filter_module.so /usr/lib/nginx/modules/ngx_http_subs_filter_module.so
 | 
						|
COPY --from=builder --chown=root:root --chmod=0644 /usr/lib/nginx/modules/ngx_http_headers_more_filter_module.so /usr/lib/nginx/modules/ngx_http_headers_more_filter_module.so
 | 
						|
COPY --from=builder --chown=root:root --chmod=0755 /usr/sbin/nginx /usr/sbin/nginx
 | 
						|
 | 
						|
RUN sed -i '1iload_module /usr/lib/nginx/modules/ngx_http_subs_filter_module.so;\n' /etc/nginx/nginx.conf \
 | 
						|
    &&  sed -i '1iload_module /usr/lib/nginx/modules/ngx_http_headers_more_filter_module.so;\n' /etc/nginx/nginx.conf
 | 
						|
 | 
						|
# Redirect log output to stdout and stderr
 | 
						|
RUN set -x \
 | 
						|
    && sed -i 's,/var/log/nginx/error.log,/dev/stderr,' /etc/nginx/nginx.conf \
 | 
						|
    && sed -i 's,/var/log/nginx/access.log,/dev/stdout,' /etc/nginx/nginx.conf
 | 
						|
 | 
						|
# Healthcheck to ping the /health endpoint
 | 
						|
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 CMD curl --fail http://localhost:8181/health || exit 1
 | 
						|
 | 
						|
LABEL \
 | 
						|
    maintainer="philip.henning@base23.de" \
 | 
						|
    org.opencontainers.image.created="${BUILD_DATE}" \
 | 
						|
    org.opencontainers.image.vendor="Base23 GmbH" \
 | 
						|
    org.opencontainers.image.authors="Philip Henning | Base23 GmbH <philip.henning@base23.de>" \
 | 
						|
    org.opencontainers.image.title="${IMG_TITLE}" \
 | 
						|
    org.opencontainers.image.description="rootless nginx image based on nginxinc/nginx-unprivileged with subst module" \
 | 
						|
    org.opencontainers.image.version="${IMAGE_VERSION}" \
 | 
						|
    org.opencontainers.image.source="https://git.base23.de/base23/sso.base23.de" \
 | 
						|
    org.opencontainers.image.revision="${SRC_REV}"
 |