Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker multiarch #93

Merged
merged 10 commits into from
Oct 3, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Added python3 multiarch
  • Loading branch information
simonmicro committed Sep 10, 2020
commit c04382d200ba5294a33d35d2540c91d4128aece0
49 changes: 49 additions & 0 deletions docker/docker-py3-kms/Dockerfile.arm32v7
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# 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 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"]
49 changes: 49 additions & 0 deletions docker/docker-py3-kms/Dockerfile.arm64v8
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# 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 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"]
5 changes: 1 addition & 4 deletions docker/docker-py3-kms/build-py3-kms.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
docker stop py3-kms
docker rm py3-kms
docker image rm pykms/pykms:py3-kms
docker build -t pykms/pykms:py3-kms .
docker build -t pykms/pykms:py3-kms . --file Dockerfile.amd64
9 changes: 9 additions & 0 deletions docker/docker-py3-kms/hooks/post_push
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/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
5 changes: 5 additions & 0 deletions docker/docker-py3-kms/hooks/pre_build
Original file line number Diff line number Diff line change
@@ -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
16 changes: 16 additions & 0 deletions docker/docker-py3-kms/multi-arch-manifest-python3.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
image: realsimonmicro/py-kms-multiarch:python3
manifests:
- image: realsimonmicro/py-kms-multiarch:python3-amd64
platform:
architecture: amd64
os: linux
- image: realsimonmicro/py-kms-multiarch:python3-arm32v7
platform:
architecture: arm
os: linux
variant: v7
- image: realsimonmicro/py-kms-multiarch:python3-arm64v8
platform:
architecture: arm64
os: linux
variant: v8