From addbfa54872608d91dcc669915b02bdd08767a5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=89=E6=AD=A3=E8=B6=85?= Date: Thu, 17 Jul 2025 05:21:06 +0800 Subject: [PATCH] fix: resolve Docker workflow manual build parameter issues (#236) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove unsupported 'scopes' parameter from docker/login-action@v3 * Fixes 'Unexpected input(s) scopes' error during Docker Hub login - Add version format conversion for Dockerfile compatibility * main-latest/dev-latest → RELEASE=latest + CHANNEL=dev * latest → RELEASE=latest + CHANNEL=release * dev-* → RELEASE=dev-* + CHANNEL=dev * v* → RELEASE={version without v} + CHANNEL=release - Fix Docker build parameter passing * Use converted docker_release and docker_channel values * Ensures correct binary download URLs in Dockerfile Resolves manual Docker build failures reported in: https://github.com/rustfs/rustfs/actions/runs/16330398463/job/46131302262 --- .github/workflows/docker.yml | 41 ++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index c1175210..148f308e 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -227,7 +227,6 @@ jobs: with: username: ${{ env.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - scopes: repository:rustfs/rustfs:pull,push # - name: Login to GitHub Container Registry # uses: docker/login-action@v3 @@ -250,6 +249,43 @@ jobs: SHORT_SHA="${{ needs.build-check.outputs.short_sha }}" CREATE_LATEST="${{ needs.build-check.outputs.create_latest }}" + # Convert version format for Dockerfile compatibility + case "$VERSION" in + "main-latest"|"dev-latest") + # For latest builds, use RELEASE=latest + appropriate CHANNEL + DOCKER_RELEASE="latest" + DOCKER_CHANNEL="dev" + ;; + "latest") + # For stable latest, use RELEASE=latest + release CHANNEL + DOCKER_RELEASE="latest" + DOCKER_CHANNEL="release" + ;; + dev-*) + # For development builds (dev-abc123), pass as-is without 'v' prefix + DOCKER_RELEASE="${VERSION}" + DOCKER_CHANNEL="dev" + ;; + v*) + # For versioned releases (v1.0.0), remove 'v' prefix for Dockerfile + DOCKER_RELEASE="${VERSION#v}" + DOCKER_CHANNEL="release" + ;; + *) + # For custom versions, pass as-is + DOCKER_RELEASE="${VERSION}" + DOCKER_CHANNEL="release" + ;; + esac + + echo "docker_release=$DOCKER_RELEASE" >> $GITHUB_OUTPUT + echo "docker_channel=$DOCKER_CHANNEL" >> $GITHUB_OUTPUT + + echo "🐳 Docker build parameters:" + echo " - Original version: $VERSION" + echo " - Docker RELEASE: $DOCKER_RELEASE" + echo " - Docker CHANNEL: $DOCKER_CHANNEL" + # Generate tags based on build type TAGS="" @@ -318,7 +354,8 @@ jobs: VERSION=${{ needs.build-check.outputs.version }} BUILD_TYPE=${{ needs.build-check.outputs.build_type }} REVISION=${{ github.sha }} - RELEASE=${{ needs.build-check.outputs.version }} + RELEASE=${{ steps.meta.outputs.docker_release }} + CHANNEL=${{ steps.meta.outputs.docker_channel }} BUILDKIT_INLINE_CACHE=1 # Enable advanced BuildKit features for better performance provenance: false