diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..a828027 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,43 @@ +name: Build Image On Release + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + bake: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2.3.4 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + with: + platforms: all + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1.6.0 + - name: Login to DockerHub + uses: docker/login-action@v1.10.0 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Build + uses: docker/build-push-action@v2 + with: + context: ./docker/docker-py3-kms/ + file: ./docker/docker-py3-kms/Dockerfile + platforms: linux/amd64,linux/386,linux/arm64/v8,linux/arm/v7,linux/arm/v6 + push: true + tags: latest + - name: Build + uses: docker/build-push-action@v2 + with: + context: ./docker/docker-py3-kms-minimal/ + file: ./docker/docker-py3-kms-minimal/Dockerfile + platforms: linux/amd64,linux/386,linux/arm64/v8,linux/arm/v7,linux/arm/v6 + push: true + tags: minimal diff --git a/docker/docker-py3-kms-minimal/Dockerfile.amd64 b/docker/docker-py3-kms-minimal/Dockerfile similarity index 100% rename from docker/docker-py3-kms-minimal/Dockerfile.amd64 rename to docker/docker-py3-kms-minimal/Dockerfile diff --git a/docker/docker-py3-kms-minimal/Dockerfile.arm32v6 b/docker/docker-py3-kms-minimal/Dockerfile.arm32v6 deleted file mode 100644 index c555137..0000000 --- a/docker/docker-py3-kms-minimal/Dockerfile.arm32v6 +++ /dev/null @@ -1,44 +0,0 @@ -# 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 arm32v6/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.arm32v7 b/docker/docker-py3-kms-minimal/Dockerfile.arm32v7 deleted file mode 100644 index 08c1cc4..0000000 --- a/docker/docker-py3-kms-minimal/Dockerfile.arm32v7 +++ /dev/null @@ -1,44 +0,0 @@ -# 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 deleted file mode 100644 index e3ebfb7..0000000 --- a/docker/docker-py3-kms-minimal/Dockerfile.arm64v8 +++ /dev/null @@ -1,44 +0,0 @@ -# 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 deleted file mode 100644 index b1aa8e1..0000000 --- a/docker/docker-py3-kms-minimal/hooks/post_push +++ /dev/null @@ -1,10 +0,0 @@ -#!/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 deleted file mode 100755 index 0a94f7e..0000000 --- a/docker/docker-py3-kms-minimal/hooks/pre_build +++ /dev/null @@ -1,5 +0,0 @@ -#!/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 deleted file mode 100644 index 9747b43..0000000 --- a/docker/docker-py3-kms-minimal/multi-arch-manifest-latest.yaml +++ /dev/null @@ -1,21 +0,0 @@ -image: pykmsorg/py-kms:latest -manifests: - - image: pykmsorg/py-kms:minimal-amd64 - platform: - architecture: amd64 - os: linux - - image: pykmsorg/py-kms:minimal-arm32v6 - platform: - architecture: arm - os: linux - variant: v6 - - image: pykmsorg/py-kms:minimal-arm32v7 - platform: - architecture: arm - os: linux - variant: v7 - - image: pykmsorg/py-kms: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 deleted file mode 100644 index a3daff2..0000000 --- a/docker/docker-py3-kms-minimal/multi-arch-manifest-minimal.yaml +++ /dev/null @@ -1,21 +0,0 @@ -image: pykmsorg/py-kms:minimal -manifests: - - image: pykmsorg/py-kms:minimal-amd64 - platform: - architecture: amd64 - os: linux - - image: pykmsorg/py-kms:minimal-arm32v6 - platform: - architecture: arm - os: linux - variant: v6 - - image: pykmsorg/py-kms:minimal-arm32v7 - platform: - architecture: arm - os: linux - variant: v7 - - image: pykmsorg/py-kms:minimal-arm64v8 - platform: - architecture: arm64 - os: linux - variant: v8 diff --git a/docker/docker-py3-kms/Dockerfile.amd64 b/docker/docker-py3-kms/Dockerfile similarity index 100% rename from docker/docker-py3-kms/Dockerfile.amd64 rename to docker/docker-py3-kms/Dockerfile diff --git a/docker/docker-py3-kms/Dockerfile.arm32v6 b/docker/docker-py3-kms/Dockerfile.arm32v6 deleted file mode 100644 index 0ff4b31..0000000 --- a/docker/docker-py3-kms/Dockerfile.arm32v6 +++ /dev/null @@ -1,49 +0,0 @@ -# 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 arm32v6/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 SQLITE false -ENV HWID "364F463A8863D35F" -ENV LOGLEVEL ERROR -ENV LOGFILE /var/log/pykms_logserver.log -ENV LOGSIZE "" - -COPY start.sh /usr/bin/start.sh - -RUN apk add --no-cache --update \ - bash \ - git \ - py3-argparse \ - py3-flask \ - py3-pygments \ - python3-tkinter \ - sqlite-libs \ - py3-pip && \ - git clone https://github.com/SystemRage/py-kms.git /tmp/py-kms && \ - git clone https://github.com/coleifer/sqlite-web.git /tmp/sqlite_web && \ - mv /tmp/py-kms/py-kms /home/ && \ - mv /tmp/sqlite_web/sqlite_web /home/ && \ - rm -rf /tmp/py-kms && \ - rm -rf /tmp/sqlite_web && \ - pip3 install peewee tzlocal pysqlite3 && \ - chmod a+x /usr/bin/start.sh && \ - apk del git - -WORKDIR /home/py-kms - -EXPOSE ${PORT}/tcp - -ENTRYPOINT ["/usr/bin/start.sh"] diff --git a/docker/docker-py3-kms/Dockerfile.arm32v7 b/docker/docker-py3-kms/Dockerfile.arm32v7 deleted file mode 100644 index b43baba..0000000 --- a/docker/docker-py3-kms/Dockerfile.arm32v7 +++ /dev/null @@ -1,49 +0,0 @@ -# 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 SQLITE false -ENV HWID "364F463A8863D35F" -ENV LOGLEVEL ERROR -ENV LOGFILE /var/log/pykms_logserver.log -ENV LOGSIZE "" - -COPY start.sh /usr/bin/start.sh - -RUN apk add --no-cache --update \ - bash \ - git \ - py3-argparse \ - py3-flask \ - py3-pygments \ - python3-tkinter \ - sqlite-libs \ - py3-pip && \ - git clone https://github.com/SystemRage/py-kms.git /tmp/py-kms && \ - git clone https://github.com/coleifer/sqlite-web.git /tmp/sqlite_web && \ - mv /tmp/py-kms/py-kms /home/ && \ - mv /tmp/sqlite_web/sqlite_web /home/ && \ - rm -rf /tmp/py-kms && \ - rm -rf /tmp/sqlite_web && \ - pip3 install peewee tzlocal pysqlite3 && \ - chmod a+x /usr/bin/start.sh && \ - apk del git - -WORKDIR /home/py-kms - -EXPOSE ${PORT}/tcp - -ENTRYPOINT ["/usr/bin/start.sh"] diff --git a/docker/docker-py3-kms/Dockerfile.arm64v8 b/docker/docker-py3-kms/Dockerfile.arm64v8 deleted file mode 100644 index 31d1244..0000000 --- a/docker/docker-py3-kms/Dockerfile.arm64v8 +++ /dev/null @@ -1,49 +0,0 @@ -# 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 SQLITE false -ENV HWID "364F463A8863D35F" -ENV LOGLEVEL ERROR -ENV LOGFILE /var/log/pykms_logserver.log -ENV LOGSIZE "" - -COPY start.sh /usr/bin/start.sh - -RUN apk add --no-cache --update \ - bash \ - git \ - py3-argparse \ - py3-flask \ - py3-pygments \ - python3-tkinter \ - sqlite-libs \ - py3-pip && \ - git clone https://github.com/SystemRage/py-kms.git /tmp/py-kms && \ - git clone https://github.com/coleifer/sqlite-web.git /tmp/sqlite_web && \ - mv /tmp/py-kms/py-kms /home/ && \ - mv /tmp/sqlite_web/sqlite_web /home/ && \ - rm -rf /tmp/py-kms && \ - rm -rf /tmp/sqlite_web && \ - pip3 install peewee tzlocal pysqlite3 && \ - chmod a+x /usr/bin/start.sh && \ - apk del git - -WORKDIR /home/py-kms - -EXPOSE ${PORT}/tcp - -ENTRYPOINT ["/usr/bin/start.sh"] diff --git a/docker/docker-py3-kms/build-py3-kms.sh b/docker/docker-py3-kms/build-py3-kms.sh index 616f1f5..d671d4a 100755 --- a/docker/docker-py3-kms/build-py3-kms.sh +++ b/docker/docker-py3-kms/build-py3-kms.sh @@ -1 +1 @@ -docker build -t pykms/pykms:py3-kms . --file Dockerfile.amd64 +docker build -t pykms/pykms:py3-kms . --file Dockerfile diff --git a/docker/docker-py3-kms/hooks/post_push b/docker/docker-py3-kms/hooks/post_push deleted file mode 100644 index 698e3ce..0000000 --- a/docker/docker-py3-kms/hooks/post_push +++ /dev/null @@ -1,9 +0,0 @@ -#!/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-python3.yaml diff --git a/docker/docker-py3-kms/hooks/pre_build b/docker/docker-py3-kms/hooks/pre_build deleted file mode 100755 index 0a94f7e..0000000 --- a/docker/docker-py3-kms/hooks/pre_build +++ /dev/null @@ -1,5 +0,0 @@ -#!/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/multi-arch-manifest-python3.yaml b/docker/docker-py3-kms/multi-arch-manifest-python3.yaml deleted file mode 100644 index ede1020..0000000 --- a/docker/docker-py3-kms/multi-arch-manifest-python3.yaml +++ /dev/null @@ -1,21 +0,0 @@ -image: pykmsorg/py-kms:python3 -manifests: - - image: pykmsorg/py-kms:python3-amd64 - platform: - architecture: amd64 - os: linux - - image: pykmsorg/py-kms:python3-arm32v6 - platform: - architecture: arm - os: linux - variant: v6 - - image: pykmsorg/py-kms:python3-arm32v7 - platform: - architecture: arm - os: linux - variant: v7 - - image: pykmsorg/py-kms:python3-arm64v8 - platform: - architecture: arm64 - os: linux - variant: v8