--- kind: pipeline type: docker name: default environment: DOCKER_CLI_EXPERIMENTAL: enabled platform: os: linux arch: amd64 services: - name: dind image: docker:dind command: ["dockerd", "--experimental"] privileged: true volumes: - name: docker_socket path: /var/run volumes: - name: docker_socket temp: {} steps: - name: build image: docker:latest commands: - |- case $(uname -a) in *x86_64*) export ARCH="amd64" docker run --rm --privileged multiarch/qemu-user-static --reset -p yes ;; *aarch64*) export ARCH="arm64" ;; *) export ARCH="unknown" ;; esac - |- export BUILDX_URL=$( \ wget -q -O - \ https://api.github.com/repos/docker/buildx/releases/latest \ | grep "browser_download_url.*linux-$ARCH" \ | cut -d: -f2,3 \ | tr -d \" \ ) - mkdir -p ~/.docker/cli-plugins - wget -O ~/.docker/cli-plugins/docker-buildx $BUILDX_URL - chmod a+x ~/.docker/cli-plugins/docker-buildx - docker version - docker buildx version - |- echo -n $REGISTRY_PASS \ | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST - docker buildx create --name multiarch --use - |- docker buildx build \ --platform linux/amd64,linux/arm64 \ --output=type=image,push=true \ --progress tty \ --build-arg TAG=$DRONE_TAG \ -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG \ -t $REGISTRY_HOST/$IMAGE:latest \ . volumes: - name: docker_socket path: /var/run environment: IMAGE: protonmail-bridge REGISTRY_HOST: registry.thegibsonhome.net REGISTRY_USER: from_secret: registry_username REGISTRY_PASS: from_secret: registry_password when: event: - tag