123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- # This is a Dockerfile intended to be built using `docker buildx`
- # for multi-arch support. Building with `docker build` may have unexpected results.
- # This file assumes that the frontend has been built using ./scripts/frontend-build
- FROM nginxproxymanager/testca AS testca
- FROM letsencrypt/pebble AS pebbleca
- FROM nginxproxymanager/nginx-full:certbot-node
- ARG TARGETPLATFORM
- ARG BUILD_VERSION
- ARG BUILD_COMMIT
- ARG BUILD_DATE
- # See: https://github.com/just-containers/s6-overlay/blob/master/README.md
- ENV SUPPRESS_NO_CONFIG_WARNING=1 \
- S6_BEHAVIOUR_IF_STAGE2_FAILS=1 \
- S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 \
- S6_FIX_ATTRS_HIDDEN=1 \
- S6_KILL_FINISH_MAXTIME=10000 \
- S6_VERBOSITY=1 \
- NODE_ENV=production \
- NPM_BUILD_VERSION="${BUILD_VERSION}" \
- NPM_BUILD_COMMIT="${BUILD_COMMIT}" \
- NPM_BUILD_DATE="${BUILD_DATE}" \
- NODE_OPTIONS="--openssl-legacy-provider"
- RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \
- && apt-get update \
- && apt-get install -y --no-install-recommends jq logrotate \
- && apt-get clean \
- && rm -rf /var/lib/apt/lists/*
- # s6 overlay
- COPY docker/scripts/install-s6 /tmp/install-s6
- RUN /tmp/install-s6 "${TARGETPLATFORM}" && rm -f /tmp/install-s6
- EXPOSE 80 81 443
- COPY backend /app
- COPY frontend/dist /app/frontend
- COPY global /app/global
- WORKDIR /app
- RUN yarn install \
- && yarn cache clean
- # add late to limit cache-busting by modifications
- COPY docker/rootfs /
- COPY --from=pebbleca /test/certs/pebble.minica.pem /etc/ssl/certs/pebble.minica.pem
- COPY --from=testca /home/step/certs/root_ca.crt /etc/ssl/certs/NginxProxyManager.crt
- # Remove frontend service not required for prod, dev nginx config as well
- RUN rm -rf /etc/s6-overlay/s6-rc.d/user/contents.d/frontend /etc/nginx/conf.d/dev.conf \
- && chmod 644 /etc/logrotate.d/nginx-proxy-manager
- VOLUME [ "/data" ]
- ENTRYPOINT [ "/init" ]
- LABEL org.label-schema.schema-version="1.0" \
- org.label-schema.license="MIT" \
- org.label-schema.name="nginx-proxy-manager" \
- org.label-schema.description="Docker container for managing Nginx proxy hosts with a simple, powerful interface " \
- org.label-schema.url="https://github.com/jc21/nginx-proxy-manager" \
- org.label-schema.vcs-url="https://github.com/jc21/nginx-proxy-manager.git" \
- org.label-schema.cmd="docker run --rm -ti jc21/nginx-proxy-manager:latest"
|