kind: pipeline type: docker name: build-and-push steps: - name: build-amd64 image: docker:26 privileged: true environment: REGISTRY_URL: from_secret: REGISTRY_URL DOCKER_USER: from_secret: DOCKER_USER DOCKER_PASS: from_secret: DOCKER_PASS volumes: - name: docker_sock path: /var/run/docker.sock commands: - | echo "=== Building amd64 image ===" export IMAGE_TAG=$DRONE_BUILD_NUMBER echo "Using tag: $IMAGE_TAG" docker login "$REGISTRY_URL" -u "$DOCKER_USER" -p "$DOCKER_PASS" docker build -t $REGISTRY_URL/public/portainer-agent-tailscale:amd64 \ -t $REGISTRY_URL/public/portainer-agent-tailscale:$IMAGE_TAG-amd64 . docker push $REGISTRY_URL/public/portainer-agent-tailscale:amd64 docker push $REGISTRY_URL/public/portainer-agent-tailscale:$IMAGE_TAG-amd64 - name: build-arm64 image: docker:26 privileged: true environment: REGISTRY_URL: from_secret: REGISTRY_URL DOCKER_USER: from_secret: DOCKER_USER DOCKER_PASS: from_secret: DOCKER_PASS volumes: - name: docker_sock path: /var/run/docker.sock commands: - | echo "=== Building arm64 image ===" export IMAGE_TAG=$DRONE_BUILD_NUMBER echo "Using tag: $IMAGE_TAG" docker login "$REGISTRY_URL" -u "$DOCKER_USER" -p "$DOCKER_PASS" docker build -t $REGISTRY_URL/public/portainer-agent-tailscale:arm64 \ -t $REGISTRY_URL/public/portainer-agent-tailscale:$IMAGE_TAG-arm64 . docker push $REGISTRY_URL/public/portainer-agent-tailscale:arm64 docker push $REGISTRY_URL/public/portainer-agent-tailscale:$IMAGE_TAG-arm64 - name: create-manifest image: docker:26 privileged: true environment: REGISTRY_URL: from_secret: REGISTRY_URL DOCKER_USER: from_secret: DOCKER_USER DOCKER_PASS: from_secret: DOCKER_PASS volumes: - name: docker_sock path: /var/run/docker.sock commands: - | echo "=== Creating multi-arch manifest ===" export IMAGE_TAG=$DRONE_BUILD_NUMBER echo "Using tag: $IMAGE_TAG" docker login "$REGISTRY_URL" -u "$DOCKER_USER" -p "$DOCKER_PASS" docker manifest create $REGISTRY_URL/public/portainer-agent-tailscale:$IMAGE_TAG \ --amend $REGISTRY_URL/public/portainer-agent-tailscale:$IMAGE_TAG-amd64 \ --amend $REGISTRY_URL/public/portainer-agent-tailscale:$IMAGE_TAG-arm64 docker manifest push $REGISTRY_URL/public/portainer-agent-tailscale:$IMAGE_TAG docker manifest create $REGISTRY_URL/public/portainer-agent-tailscale:latest \ --amend $REGISTRY_URL/public/portainer-agent-tailscale:amd64 \ --amend $REGISTRY_URL/public/portainer-agent-tailscale:arm64 docker manifest push $REGISTRY_URL/public/portainer-agent-tailscale:latest volumes: - name: docker_sock host: path: /var/run/docker.sock