From 85bfa2a615ed94b97ce88c0dc22b20ff11d46c13 Mon Sep 17 00:00:00 2001 From: Ian Fijolek Date: Fri, 8 Mar 2019 17:12:03 -0800 Subject: [PATCH] Initial --- .dockerignore | 2 ++ .drone.yml | 18 ++++++++++++++++++ .gitignore | 2 ++ Dockerfile | 11 +++++++++++ Makefile | 33 +++++++++++++++++++++++++++++++++ get_qemu.sh | 13 +++++++++++++ 6 files changed, 79 insertions(+) create mode 100644 .dockerignore create mode 100644 .drone.yml create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 Makefile create mode 100755 get_qemu.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..69ab732 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +README.md +Makefile diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..33ff9e8 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,18 @@ +kind: pipeline +name: amd64 + +steps: + - name: build + image: docker + commands: + - make build + +--- +kind: pipeline +name: arm + +steps: + - name: build + image: docker + commands: + - make cross-build-arm diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..604a3bf --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +qemu-* +*.tar.gz diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7bac3ef --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +ARG REPO=library +FROM ${REPO}/python:3-alpine + +ARG ARCH=x86_64 +COPY ./build/qemu-${ARCH}-static /usr/bin/ + + +RUN echo "OK" > /foo + + +CMD [ "cat", "/foo" ] diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..9a87fe2 --- /dev/null +++ b/Makefile @@ -0,0 +1,33 @@ +DOCKER_TAG ?= multiarch-test-${USER} + +.PHONY: default +default: test + +.PHONY:test +test: + @echo ok + +.PHONY: build +build: build/qemu-x86_64-static + docker build . -t ${DOCKER_TAG} + +build/qemu-arm-static: + ./get_qemu.sh + +build/qemu-x86_64-static: + ./get_qemu.sh + +build/qemu-aarch64-static: + ./get_qemu.sh + +.PHONY: cross-build-arm +cross-build-arm: build/qemu-arm-static + docker build --build-arg REPO=arm32v6 --build-arg ARCH=arm . -t ${DOCKER_TAG}-arm32v6 + +.PHONY: run +run: build + docker run ${DOCKER_TAG} + +.PHONY: run +cross-run-arm: cross-build-arm + docker run --rm ${DOCKER_TAG}-arm32v6 diff --git a/get_qemu.sh b/get_qemu.sh new file mode 100755 index 0000000..c9e0314 --- /dev/null +++ b/get_qemu.sh @@ -0,0 +1,13 @@ +#! /bin/bash + +HOST_ARCH=x86_64 +VERSION=v2.9.1-1 + +mkdir -p build +cd build + +for target_arch in aarch64 arm x86_64; do + wget -N https://github.com/multiarch/qemu-user-static/releases/download/$VERSION/${HOST_ARCH}_qemu-${target_arch}-static.tar.gz + tar -xvf ${HOST_ARCH}_qemu-${target_arch}-static.tar.gz + rm ${HOST_ARCH}_qemu-${target_arch}-static.tar.gz +done