# Docker Arch (amd64, arm32v6, ...) ARG TARGET_ARCH FROM ${TARGET_ARCH}/python:3.8-alpine3.12 # Qemu Arch (x86_64, arm, ...) ARG QEMU_ARCH ENV QEMU_ARCH=${QEMU_ARCH} COPY qemu-${QEMU_ARCH}-static /usr/bin/ ENTRYPOINT [ "certbot" ] EXPOSE 80 443 VOLUME /etc/letsencrypt /var/lib/letsencrypt WORKDIR /opt/certbot # Copy certbot code COPY CHANGELOG.md README.rst src/ COPY letsencrypt-auto-source/pieces/dependency-requirements.txt . COPY letsencrypt-auto-source/pieces/pipstrap.py . COPY tools tools COPY acme src/acme COPY certbot src/certbot # Generate constraints file to pin dependency versions RUN cat dependency-requirements.txt | tools/strip_hashes.py > unhashed_requirements.txt \ && cat tools/dev_constraints.txt unhashed_requirements.txt | tools/merge_requirements.py > docker_constraints.txt # Install certbot runtime dependencies RUN apk add --no-cache --virtual .certbot-deps \ libffi \ libssl1.1 \ openssl \ ca-certificates \ binutils # Install certbot from sources RUN apk add --no-cache --virtual .build-deps \ gcc \ linux-headers \ openssl-dev \ musl-dev \ libffi-dev \ && python pipstrap.py \ && pip install -r dependency-requirements.txt \ && pip install --no-cache-dir --no-deps \ --editable src/acme \ --editable src/certbot \ && apk del .build-deps