Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/certbot/certbot.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tools/docker/core/Dockerfile')
-rw-r--r--tools/docker/core/Dockerfile54
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