diff --git a/.drone.yml b/.drone.yml index 2fee33c..9bf7e1f 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,10 +1,10 @@ kind: pipeline type: docker -name: build-multiarch-podman +name: build-multiarch-docker # 匹配 Runner 标签 node: - runtime: podman + runtime: docker arch: amd64 multiarch: true @@ -20,22 +20,18 @@ volumes: host: path: /var/run/docker.sock -# 核心:启用 Drone 内置 Git 克隆配置 clone: - disable: false # 启用内置克隆(默认就是 false,显式声明更稳妥) - depth: 1 # 浅克隆,加快速度 - tags: true # 拉取标签(适配 Tag 触发) + disable: false + depth: 1 + tags: true steps: - # 登录容器仓库(如 Harbor、Docker Hub、阿里云 ACR) + # 登录容器仓库(使用 docker login) - name: registry login - image: quay.io/containers/podman:v4.9 - privileged: true + image: docker:24.0-cli # 使用官方 Docker CLI 镜像 volumes: - name: docker-sock path: /var/run/docker.sock - - name: containers-config - path: /etc/containers environment: REGISTRY_SERVER: "swr.cn-north-4.myhuaweicloud.com" REGISTRY_USER: @@ -45,28 +41,24 @@ steps: commands: - | echo "Logging into registry..." - # 调试:打印所有关键变量 echo "=== Debug Variables ===" echo "REGISTRY_SERVER: $REGISTRY_SERVER" echo "REGISTRY_USER: ${REGISTRY_USER:-empty}" echo "REGISTRY_PASSWORD: ${REGISTRY_PASSWORD:-empty}" echo "========================" - podman login "$REGISTRY_SERVER" -u "$REGISTRY_USER" -p "$REGISTRY_PASSWORD" || { + echo "$REGISTRY_PASSWORD" | docker login "$REGISTRY_SERVER" -u "$REGISTRY_USER" --password-stdin || { echo "Registry login failed!" exit 1 } - # 构建并推送镜像 + # 构建并推送镜像(使用 docker build/push) - name: build and push - image: quay.io/containers/podman:v4.9 - privileged: true + image: docker:24.0-cli volumes: - name: docker-sock path: /var/run/docker.sock - - name: containers-config - path: /etc/containers environment: - REGISTRY_SERVER: "swr.cn-north-4.myhuaweicloud.com/colovu/scratch" + REGISTRY_REPO: "swr.cn-north-4.myhuaweicloud.com/colovu/scratch" DRONE_TAG: ${DRONE_TAG} DRONE_COMMIT_SHA: ${DRONE_COMMIT_SHA} DRONE_BRANCH: ${DRONE_BRANCH} @@ -80,43 +72,39 @@ steps: IMAGE_TAG="${DRONE_COMMIT_SHA:0:8:-unknown}" fi - # 调试:打印所有关键变量 echo "=== Debug Variables ===" echo "DRONE_TAG: ${DRONE_TAG:-empty}" echo "DRONE_COMMIT_SHA: ${DRONE_COMMIT_SHA:-empty}" echo "DRONE_BRANCH: ${DRONE_BRANCH:-empty}" - echo "REGISTRY_SERVER: ${REGISTRY_SERVER:-empty}" + echo "REGISTRY_REPO: ${REGISTRY_REPO:-empty}" + echo "IMAGE_TAG: $IMAGE_TAG" echo "========================" echo "Building image..." - podman build \ - --tag "${REGISTRY_SERVER}:${IMAGE_TAG}" \ - . + docker build -t "${REGISTRY_REPO}:${IMAGE_TAG}" . echo "Pushing image..." - podman push "${REGISTRY_SERVER}:${IMAGE_TAG}" + docker push "${REGISTRY_REPO}:${IMAGE_TAG}" - # 可选:打 latest 标签 + # 可选:打 latest 标签(仅 main 分支) if [ "${DRONE_BRANCH}" = "main" ]; then - podman push \ - "${REGISTRY_SERVER}:${IMAGE_TAG}" \ - "docker://${REGISTRY_SERVER}:latest" + docker tag "${REGISTRY_REPO}:${IMAGE_TAG}" "${REGISTRY_REPO}:latest" + docker push "${REGISTRY_REPO}:latest" fi + + echo "Image pushed: ${REGISTRY_REPO}:${IMAGE_TAG}" - echo "Image pushed: ${REGISTRY_SERVER}:${IMAGE_TAG}" - - # 清理步骤(无论成功/失败都执行) + # 清理步骤 - name: cleanup - image: quay.io/containers/podman:v4.9 - privileged: true + image: docker:24.0-cli volumes: - name: docker-sock path: /var/run/docker.sock commands: - | echo "Logging out of registry..." - podman logout swr.cn-north-4.myhuaweicloud.com || true + docker logout swr.cn-north-4.myhuaweicloud.com || true echo "Cleaning up unused images..." - podman system prune -af || true + docker system prune -af || true when: - status: [success, failure] # 成功/失败都执行清理 + status: [success, failure]