Skip to content
Snippets Groups Projects
Select Git revision
  • d3ac5b0b9dd316db5797e13789b5b8c3e8fa9ff6
  • master default protected
  • dwmcallister-patch-1
  • 520-fix-wsl
  • tune-worker-processes
  • alpine-nginxorg
  • 1.29.0
  • 1.28.0
  • 1.27.5
  • 1.27.3
  • 1.27.2
  • 1.27.0
  • 1.26.1
  • 1.26.0
  • 1.25.5
  • 1.25.4
  • 1.25.3
  • 1.25.2
  • 1.25.1
  • 1.25.0
  • 1.24.0
  • 1.23.3
  • 1.23.4
  • 1.23.2
  • 1.22.1
  • 1.23.1
26 results

Dockerfile-alpine.template

Blame
  • Dockerfile-alpine.template 2.98 KiB
    FROM nginx:%%NGINX_VERSION%%-alpine-slim
    
    ENV NJS_VERSION   %%NJS_VERSION%%
    ENV NJS_RELEASE   %%NJS_RELEASE%%
    
    RUN set -x \
        && apkArch="$(cat /etc/apk/arch)" \
        && nginxPackages="%%PACKAGES%%
        " \
    # install prerequisites for public key and pkg-oss checks
        && apk add --no-cache --virtual .checksum-deps \
            openssl \
        && case "$apkArch" in \
            x86_64|aarch64) \
    # arches officially built by upstream
                apk add -X "%%PACKAGEREPO%%v$(egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release)/main" --no-cache $nginxPackages \
                ;; \
            *) \
    # we're on an architecture upstream doesn't officially build for
    # let's build binaries from the published packaging sources
                set -x \
                && tempDir="$(mktemp -d)" \
                && chown nobody:nobody $tempDir \
                && apk add --no-cache --virtual .build-deps \
                    gcc \
                    libc-dev \
                    make \
                    openssl-dev \
                    pcre2-dev \
                    zlib-dev \
                    linux-headers \
                    libxslt-dev \
                    gd-dev \
                    geoip-dev \
                    libedit-dev \
                    bash \
                    alpine-sdk \
                    findutils \
                    curl \
                && su nobody -s /bin/sh -c " \
                    export HOME=${tempDir} \
                    && cd ${tempDir} \
                    && curl -f -L -O https://github.com/nginx/pkg-oss/archive/%%REVISION%%.tar.gz \
                    && PKGOSSCHECKSUM=\"%%PKGOSSCHECKSUM%% *%%REVISION%%.tar.gz\" \
                    && if [ \"\$(openssl sha512 -r %%REVISION%%.tar.gz)\" = \"\$PKGOSSCHECKSUM\" ]; then \
                        echo \"pkg-oss tarball checksum verification succeeded!\"; \
                    else \
                        echo \"pkg-oss tarball checksum verification failed!\"; \
                        exit 1; \
                    fi \
                    && tar xzvf %%REVISION%%.tar.gz \
                    && cd pkg-oss-%%REVISION%% \
                    && cd alpine \
                    && make %%BUILDTARGET%% \
                    && apk index --allow-untrusted -o ${tempDir}/packages/alpine/${apkArch}/APKINDEX.tar.gz ${tempDir}/packages/alpine/${apkArch}/*.apk \
                    && abuild-sign -k ${tempDir}/.abuild/abuild-key.rsa ${tempDir}/packages/alpine/${apkArch}/APKINDEX.tar.gz \
                    " \
                && cp ${tempDir}/.abuild/abuild-key.rsa.pub /etc/apk/keys/ \
                && apk del --no-network .build-deps \
                && apk add -X ${tempDir}/packages/alpine/ --no-cache $nginxPackages \
                ;; \
        esac \
    # remove checksum deps
        && apk del --no-network .checksum-deps \
    # if we have leftovers from building, let's purge them (including extra, unnecessary build deps)
        && if [ -n "$tempDir" ]; then rm -rf "$tempDir"; fi \
        && if [ -f "/etc/apk/keys/abuild-key.rsa.pub" ]; then rm -f /etc/apk/keys/abuild-key.rsa.pub; fi \
    # Bring in curl and ca-certificates to make registering on DNS SD easier
        && apk add --no-cache curl ca-certificates