You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GitLab-Runner和Docker自动发布时Release-Job报错求助

问题排查与修复方案

核心报错原因

你的release_job继承了全局default段中的before_script(执行docker info命令),但你指定的release-cli镜像没有安装Docker客户端,导致执行docker info时直接失败,这就是release任务报错的根源。

修复步骤

  1. 覆盖release_job的before_script
    在release_job中添加空的before_script配置,避免继承全局的Docker相关命令:

    release_job:
      stage: release
      image: registry.gitlab.com/gitlab-org/release-cli:latest
      before_script: []  # 关键:清空before_script,不执行docker info
      rules:
        - if: $CI_COMMIT_TAG
      script:
        - echo "Running the release job."
      release:
        tag_name: $CI_COMMIT_TAG
        name: 'Release $CI_COMMIT_TAG'
        description: 'Release created using the release-cli.'
    
  2. 验证Runner权限
    确保执行该任务的GitLab Runner拥有足够权限:

    • 进入项目的「Settings → CI/CD → Runners」
    • 检查对应Runner的权限,需包含api权限(用于调用GitLab Release API)
  3. 可选:添加exe文件到Release资产
    如果你需要把打包好的exe作为Release的下载资产,可以在release配置中补充assets字段,关联build阶段生成的artifact:

    release:
      tag_name: $CI_COMMIT_TAG
      name: 'Release $CI_COMMIT_TAG'
      description: 'Release created using the release-cli.'
      assets:
        links:
          - name: '项目可执行文件'
            url: '$CI_PROJECT_URL/-/jobs/$CI_JOB_ID/artifacts/raw/dist/your-app.exe'
            filepath: '/your-app.exe'  # 可选:指定下载后的文件名
            link_type: 'package'
    

额外说明

你的build阶段运行正常是因为build任务使用了docker:24.0.7镜像,自带Docker客户端,能正常执行docker info命令;而release任务用的是专门的release-cli镜像,不需要也没有Docker环境,所以必须断开全局before_script的继承。

内容的提问来源于stack exchange,提问作者Ozge Durgut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 08:12:41