diff options
Diffstat (limited to 'tools/docker/core/Dockerfile')
-rw-r--r-- | tools/docker/core/Dockerfile | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tools/docker/core/Dockerfile b/tools/docker/core/Dockerfile new file mode 100644 index 000000000..a0dfb1c51 --- /dev/null +++ b/tools/docker/core/Dockerfile @@ -0,0 +1,54 @@ +# 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/ + +ARG CERTBOT_VERSION +ENV CERTBOT_VERSION=${CERTBOT_VERSION} + +ENTRYPOINT [ "certbot" ] +EXPOSE 80 443 +VOLUME /etc/letsencrypt /var/lib/letsencrypt +WORKDIR /opt/certbot + +# Retrieve certbot code +RUN mkdir -p src \ + && wget -O certbot-${CERTBOT_VERSION}.tar.gz https://github.com/certbot/certbot/archive/v${CERTBOT_VERSION}.tar.gz \ + && tar xf certbot-${CERTBOT_VERSION}.tar.gz \ + && cp certbot-${CERTBOT_VERSION}/CHANGELOG.md certbot-${CERTBOT_VERSION}/README.rst src/ \ + && cp certbot-${CERTBOT_VERSION}/letsencrypt-auto-source/pieces/dependency-requirements.txt . \ + && cp certbot-${CERTBOT_VERSION}/letsencrypt-auto-source/pieces/pipstrap.py . \ + && cp -r certbot-${CERTBOT_VERSION}/tools tools \ + && cp -r certbot-${CERTBOT_VERSION}/acme src/acme \ + && cp -r certbot-${CERTBOT_VERSION}/certbot src/certbot \ + && rm -rf certbot-${CERTBOT_VERSION}.tar.gz certbot-${CERTBOT_VERSION} + +# 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 |