diff --git a/docker/docker-py3-kms-minimal/Dockerfile b/docker/docker-py3-kms-minimal/Dockerfile index d54ece5..afd3e42 100644 --- a/docker/docker-py3-kms-minimal/Dockerfile +++ b/docker/docker-py3-kms-minimal/Dockerfile @@ -1,6 +1,6 @@ # This is a minimized version from docker/docker-py3-kms/Dockerfile without SQLite support to further reduce image size -FROM alpine:3.8 +FROM alpine:3.12 ENV IP 0.0.0.0 ENV PORT 1688 diff --git a/docker/docker-py3-kms-minimal/Dockerfile.arm32v7 b/docker/docker-py3-kms-minimal/Dockerfile.arm32v7 new file mode 100644 index 0000000..08c1cc4 --- /dev/null +++ b/docker/docker-py3-kms-minimal/Dockerfile.arm32v7 @@ -0,0 +1,44 @@ +# This is a minimized version from docker/docker-py3-kms/Dockerfile without SQLite support to further reduce image size + +# Prepare the multiarch env +FROM alpine AS builder +RUN apk add curl && curl -L "https://github.com/balena-io/qemu/releases/download/v4.0.0%2Bbalena2/qemu-4.0.0.balena2-arm.tar.gz" | tar zxvf - -C . --strip-components 1 + +# Switch to the target image +FROM arm32v7/alpine:3.12 + +# Import qemu from the preparation +COPY --from=builder qemu-arm-static /usr/bin + +ENV IP 0.0.0.0 +ENV PORT 1688 +ENV EPID "" +ENV LCID 1033 +ENV CLIENT_COUNT 26 +ENV ACTIVATION_INTERVAL 120 +ENV RENEWAL_INTERVAL 10080 +ENV HWID "RANDOM" +ENV LOGLEVEL INFO +ENV LOGFILE /var/log/pykms_logserver.log +ENV LOGSIZE "" + +RUN apk add --no-cache --update \ + bash \ + git \ + py3-argparse \ + py3-flask \ + py3-pygments \ + python3-tkinter \ + sqlite-libs \ + py3-pip && \ + pip3 install peewee tzlocal && \ + git clone https://github.com/SystemRage/py-kms/ /tmp/py-kms && \ + mv /tmp/py-kms/py-kms /home/ && \ + rm -rf /tmp/py-kms && \ + apk del git + +WORKDIR /home/py-kms + +EXPOSE ${PORT}/tcp + +ENTRYPOINT /usr/bin/python3 pykms_Server.py ${IP} ${PORT} -l ${LCID} -c ${CLIENT_COUNT} -a ${ACTIVATION_INTERVAL} -r ${RENEWAL_INTERVAL} -w ${HWID} -V ${LOGLEVEL} -F ${LOGFILE} diff --git a/docker/docker-py3-kms-minimal/Dockerfile.arm64v8 b/docker/docker-py3-kms-minimal/Dockerfile.arm64v8 new file mode 100644 index 0000000..e3ebfb7 --- /dev/null +++ b/docker/docker-py3-kms-minimal/Dockerfile.arm64v8 @@ -0,0 +1,44 @@ +# This is a minimized version from docker/docker-py3-kms/Dockerfile without SQLite support to further reduce image size + +# Prepare the multiarch env +FROM alpine AS builder +RUN apk add curl && curl -L "https://github.com/balena-io/qemu/releases/download/v4.0.0%2Bbalena2/qemu-4.0.0.balena2-aarch64.tar.gz" | tar zxvf - -C . --strip-components 1 + +# Switch to the target image +FROM arm64v8/alpine:3.12 + +# Import qemu from the preparation +COPY --from=builder qemu-aarch64-static /usr/bin + +ENV IP 0.0.0.0 +ENV PORT 1688 +ENV EPID "" +ENV LCID 1033 +ENV CLIENT_COUNT 26 +ENV ACTIVATION_INTERVAL 120 +ENV RENEWAL_INTERVAL 10080 +ENV HWID "RANDOM" +ENV LOGLEVEL INFO +ENV LOGFILE /var/log/pykms_logserver.log +ENV LOGSIZE "" + +RUN apk add --no-cache --update \ + bash \ + git \ + py3-argparse \ + py3-flask \ + py3-pygments \ + python3-tkinter \ + sqlite-libs \ + py3-pip && \ + pip3 install peewee tzlocal && \ + git clone https://github.com/SystemRage/py-kms/ /tmp/py-kms && \ + mv /tmp/py-kms/py-kms /home/ && \ + rm -rf /tmp/py-kms && \ + apk del git + +WORKDIR /home/py-kms + +EXPOSE ${PORT}/tcp + +ENTRYPOINT /usr/bin/python3 pykms_Server.py ${IP} ${PORT} -l ${LCID} -c ${CLIENT_COUNT} -a ${ACTIVATION_INTERVAL} -r ${RENEWAL_INTERVAL} -w ${HWID} -V ${LOGLEVEL} -F ${LOGFILE} diff --git a/docker/docker-py3-kms-minimal/hooks/post_push b/docker/docker-py3-kms-minimal/hooks/post_push new file mode 100644 index 0000000..b1aa8e1 --- /dev/null +++ b/docker/docker-py3-kms-minimal/hooks/post_push @@ -0,0 +1,10 @@ +#!/bin/bash + +# Use manifest-tool to create the manifest, given the experimental +# "docker manifest" command isn't available yet on Docker Hub. + +curl -Lo manifest-tool "https://github.com/estesp/manifest-tool/releases/download/v1.0.2/manifest-tool-linux-amd64" +chmod +x manifest-tool + +./manifest-tool push from-spec multi-arch-manifest-latest.yaml +./manifest-tool push from-spec multi-arch-manifest-minimal.yaml diff --git a/docker/docker-py3-kms-minimal/hooks/pre_build b/docker/docker-py3-kms-minimal/hooks/pre_build new file mode 100755 index 0000000..0a94f7e --- /dev/null +++ b/docker/docker-py3-kms-minimal/hooks/pre_build @@ -0,0 +1,5 @@ +#!/bin/bash + +# Register qemu-*-static for all supported processors except the +# current one, but also remove all registered binfmt_misc before +docker run --rm --privileged multiarch/qemu-user-static:register --reset diff --git a/docker/docker-py3-kms-minimal/multi-arch-manifest-latest.yaml b/docker/docker-py3-kms-minimal/multi-arch-manifest-latest.yaml new file mode 100644 index 0000000..791071a --- /dev/null +++ b/docker/docker-py3-kms-minimal/multi-arch-manifest-latest.yaml @@ -0,0 +1,16 @@ +image: realsimonmicro/py-kms-multiarch:latest +manifests: + - image: realsimonmicro/py-kms-multiarch:minimal-amd64 + platform: + architecture: amd64 + os: linux + - image: realsimonmicro/py-kms-multiarch:minimal-arm32v7 + platform: + architecture: arm + os: linux + variant: v7 + - image: realsimonmicro/py-kms-multiarch:minimal-arm64v8 + platform: + architecture: arm64 + os: linux + variant: v8 diff --git a/docker/docker-py3-kms-minimal/multi-arch-manifest-minimal.yaml b/docker/docker-py3-kms-minimal/multi-arch-manifest-minimal.yaml new file mode 100644 index 0000000..0d9966d --- /dev/null +++ b/docker/docker-py3-kms-minimal/multi-arch-manifest-minimal.yaml @@ -0,0 +1,16 @@ +image: realsimonmicro/py-kms-multiarch:minimal +manifests: + - image: realsimonmicro/py-kms-multiarch:minimal-amd64 + platform: + architecture: amd64 + os: linux + - image: realsimonmicro/py-kms-multiarch:minimal-arm32v7 + platform: + architecture: arm + os: linux + variant: v7 + - image: realsimonmicro/py-kms-multiarch:minimal-arm64v8 + platform: + architecture: arm64 + os: linux + variant: v8