From 4f72ff8aba18aa1be4e3916ac034eab17eefe545 Mon Sep 17 00:00:00 2001 From: rockstardev Date: Sun, 25 Nov 2018 23:37:12 -0600 Subject: [PATCH] Docker gen multiarch images --- .circleci/config.yml | 80 +++++++++++++++++++++++++++++ Dockerfile => linuxamd64.Dockerfile | 4 +- linuxarm32v7.Dockerfile | 12 +++++ 3 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 .circleci/config.yml rename Dockerfile => linuxamd64.Dockerfile (90%) create mode 100644 linuxarm32v7.Dockerfile diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..85dfb28 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,80 @@ +version: 2 +jobs: + # publish jobs require $DOCKERHUB_REPO, $DOCKERHUB_USER, $DOCKERHUB_PASS defined + publish_docker_linuxamd64: + machine: + docker_layer_caching: true + steps: + - checkout + - run: + command: | + LATEST_TAG=${CIRCLE_TAG:1} #trim v from tag + # + sudo docker build --pull -t $DOCKERHUB_REPO:$LATEST_TAG-amd64 -f linuxamd64.Dockerfile . + sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS + sudo docker push $DOCKERHUB_REPO:$LATEST_TAG-amd64 + + publish_docker_linuxarm: + machine: + docker_layer_caching: true + steps: + - checkout + - run: + command: | + sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset + LATEST_TAG=${CIRCLE_TAG:1} #trim v from tag + # + sudo docker build --pull -t $DOCKERHUB_REPO:$LATEST_TAG-arm32v7 -f linuxarm32v7.Dockerfile . + sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS + sudo docker push $DOCKERHUB_REPO:$LATEST_TAG-arm32v7 + + publish_docker_multiarch: + machine: + enabled: true + image: circleci/classic:201808-01 + steps: + - run: + command: | + # Turn on Experimental features + sudo mkdir $HOME/.docker + sudo sh -c 'echo "{ \"experimental\": \"enabled\" }" >> $HOME/.docker/config.json' + # + sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS + # + LATEST_TAG=${CIRCLE_TAG:1} #trim v from tag + sudo docker manifest create --amend $DOCKERHUB_REPO:$LATEST_TAG $DOCKERHUB_REPO:$LATEST_TAG-amd64 $DOCKERHUB_REPO:$LATEST_TAG-arm32v7 + sudo docker manifest annotate $DOCKERHUB_REPO:$LATEST_TAG $DOCKERHUB_REPO:$LATEST_TAG-amd64 --os linux --arch amd64 + sudo docker manifest annotate $DOCKERHUB_REPO:$LATEST_TAG $DOCKERHUB_REPO:$LATEST_TAG-arm32v7 --os linux --arch arm --variant v7 + sudo docker manifest push $DOCKERHUB_REPO:$LATEST_TAG -p + +workflows: + version: 2 + build_and_test: + jobs: + - test + + publish: + jobs: + - publish_docker_linuxamd64: + filters: + # ignore any commit on any branch by default + branches: + ignore: /.*/ + # only act on version tags + tags: + only: /v(.)*/ + - publish_docker_linuxarm: + filters: + branches: + ignore: /.*/ + tags: + only: /v(.)*/ + - publish_docker_multiarch: + requires: + - publish_docker_linuxamd64 + - publish_docker_linuxarm + filters: + branches: + ignore: /.*/ + tags: + only: /v(.)*/ diff --git a/Dockerfile b/linuxamd64.Dockerfile similarity index 90% rename from Dockerfile rename to linuxamd64.Dockerfile index 2277a2f..cff77e7 100644 --- a/Dockerfile +++ b/linuxamd64.Dockerfile @@ -1,9 +1,9 @@ -FROM alpine:latest +FROM alpine:3.8 LABEL maintainer="Jason Wilder " RUN apk -U add openssl -ENV VERSION 0.7.3 +ENV VERSION 0.7.4 ENV DOWNLOAD_URL https://github.com/jwilder/docker-gen/releases/download/$VERSION/docker-gen-alpine-linux-amd64-$VERSION.tar.gz ENV DOCKER_HOST unix:///tmp/docker.sock diff --git a/linuxarm32v7.Dockerfile b/linuxarm32v7.Dockerfile new file mode 100644 index 0000000..d10bca5 --- /dev/null +++ b/linuxarm32v7.Dockerfile @@ -0,0 +1,12 @@ +FROM arm32v6/alpine:3.8 +LABEL maintainer="Jason Wilder " + +RUN apk -U add openssl + +ENV VERSION 0.7.4 +ENV DOWNLOAD_URL https://github.com/jwilder/docker-gen/releases/download/$VERSION/docker-gen-alpine-linux-armhf-$VERSION.tar.gz +ENV DOCKER_HOST unix:///tmp/docker.sock + +RUN wget -qO- $DOWNLOAD_URL | tar xvz -C /usr/local/bin + +ENTRYPOINT ["/usr/local/bin/docker-gen"]