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"]