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

Github Actions执行docker run报错:本地无法找到'docker-repository:latest'镜像

解决Github Actions执行docker run时"Unable to find image 'docker-repository:latest' locally"报错

问题场景

在使用Github Actions自托管(self-hosted)Runner执行docker run操作时,出现找不到本地镜像的报错,相关部署步骤配置如下:

deploy:
  needs: build
  runs-on: self-hosted
  steps:
    .
    .
    .

    - name: Run Docker Container
      run: sudo docker run -d -p 3002:3002 --name ${{ env.DOCKER_CONTAINER_NAME }} ${{ env.DOCKER_REGISTRY_URL }}

报错截图

解决方法

1. 先拉取镜像再运行

自托管Runner本地没有目标镜像时,需要先从镜像仓库拉取。在Run Docker Container步骤前添加拉取命令:

- name: Pull Docker Image
  run: sudo docker pull ${{ env.DOCKER_REGISTRY_URL }}

如果是私有镜像仓库,还要先完成登录操作:

- name: Login to Docker Registry
  run: sudo docker login ${{ env.DOCKER_REGISTRY_URL }} -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}

2. 检查环境变量正确性

确认${{ env.DOCKER_REGISTRY_URL }}变量值为完整的镜像名(如docker-repository:latest),无拼写错误。可以添加步骤打印变量排查:

- name: Verify Docker Image Name
  run: echo "Target image: ${{ env.DOCKER_REGISTRY_URL }}"

3. 解决sudo权限导致的镜像上下文问题

sudo会使用root用户的Docker上下文,可能和构建镜像时的用户上下文不一致,导致找不到镜像:

  • 给Runner用户添加Docker组权限,后续无需使用sudo:
    sudo usermod -aG docker $USER
    
    执行命令后重启自托管Runner服务
  • 或者确保构建镜像的步骤也使用sudo执行,保证镜像存储在root用户的镜像库中

4. 验证Runner本地镜像列表

添加步骤查看Runner上已有的镜像,确认目标镜像是否存在:

- name: List Local Docker Images
  run: sudo docker images

内容的提问来源于stack exchange,提问作者Shubham Verma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:23:10