version: 2.1 jobs: canary: docker: - image: cimg/base:2020.06 working_directory: ~/docker-volume-backup steps: - checkout - setup_remote_docker: version: 20.10.6 - run: name: Build command: | docker build . -t offen/docker-volume-backup:canary - run: name: Create container from image command: | docker run -d offen/docker-volume-backup:canary echo "Sleeping for 30s before checking if container is still running." sleep 30 count=$(docker ps -q | wc -l) if [[ $count != "1" ]]; then echo "Expected one container to be running, found $count." exit 1 fi docker stop $(docker ps -q) build: docker: - image: cimg/base:2020.06 environment: DOCKER_BUILDKIT: '1' DOCKER_CLI_EXPERIMENTAL: enabled working_directory: ~/docker-volume-backup steps: - checkout - setup_remote_docker: version: 20.10.6 - docker/install-docker-credential-helper - docker/configure-docker-credentials-store - run: name: Push to Docker Hub command: | echo "$DOCKER_ACCESSTOKEN" | docker login --username offen --password-stdin # This is required for building ARM: https://gitlab.alpinelinux.org/alpine/aports/-/issues/12406 docker run --rm --privileged linuxkit/binfmt:v0.8 docker context create docker-volume-backup docker buildx create docker-volume-backup --name docker-volume-backup --use docker buildx inspect --bootstrap docker buildx build --platform linux/arm64,linux/amd64 \ -t offen/docker-volume-backup:$CIRCLE_TAG \ -t offen/docker-volume-backup:latest \ . --push workflows: version: 2 docker_image: jobs: - canary: filters: tags: ignore: /^v.*/ - build: filters: branches: ignore: /.*/ tags: only: /^v.*/ orbs: docker: circleci/docker@1.0.1