From 500d3aa316ccbce540593244a5a144595a4b2fd9 Mon Sep 17 00:00:00 2001 From: shuirong Date: Wed, 17 Dec 2025 15:47:28 +0900 Subject: [PATCH] ci: push to dockerhub, support arm --- .circleci/config.yml | 54 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 366bc72..311abe3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -57,6 +57,40 @@ jobs: if [[ "${CIRCLE_BRANCH}" =~ ^canary.([0-9]{4}.wk[0-9]{2},?)+$ ]]; then curl -X POST -H "Content-Type: application/json" -d '{"msg_type":"text","content":{"text":"'${CIRCLE_USERNAME}' 触发了灰度环境分支 '${CIRCLE_BRANCH}' 更新与部署"}}' https://open.larksuite.com/open-apis/bot/v2/hook/68004e4a-1381-4886-a982-cd77d5f2e6a1 fi + docker-hub-build-push: + machine: + image: ubuntu-2404:current + resource_class: medium + parameters: + repo: + type: string + dockerfile: + type: string + docker-tag: + type: string + steps: + - run: + name: Build Docker image + command: | + # 检查是否为ARM构建 + if [[ "<>" == *"arm64"* ]]; then + # 设置Docker buildx进行多平台构建 + docker buildx create --use --name multiarch + docker buildx inspect --bootstrap + # 构建ARM64架构的镜像 + docker buildx build -t <>:<> --platform linux/arm64 --no-cache -f <> --load . + else + # 普通x86构建 + docker build -t <>:<> --no-cache -f <> . + fi + - run: + name: Publish Docker Image to Docker Hub + command: | + echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin + IMAGE_TAG="0.0.${CIRCLE_BUILD_NUM}" + docker tag <>:<> <>:$IMAGE_TAG + docker push <>:<> + docker push <>:$IMAGE_TAG workflows: version: 2 @@ -113,4 +147,22 @@ workflows: only: - prod requires: - - build-for-prod \ No newline at end of file + - build-for-prod + - docker-hub-build-push: + name: docker-hub-build-push + repo: gptbasesparticle/catalog-agent + dockerfile: Dockerfile + docker-tag: latest + filters: + branches: + only: + - onprem + - docker-hub-build-push: + name: docker-hub-build-push-arm + repo: gptbasesparticle/catalog-agent + dockerfile: Dockerfile + docker-tag: latest_arm64 + filters: + branches: + only: + - onprem