更新时间:2025-06-19 GMT+08:00
分享

拉取镜像失败导致构建失败

问题现象

构建失败,报错信息为“制作Docker镜像失败”,报错日志如下。

  • too many requests
    toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
  • request canceled while waiting for connection
    Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

原因分析

构建任务中使用的基础镜像源为DockerHub。由于DockerHub的限制,短时间内拉取次数较多时将受限无法拉取,因此可能会造成构建失败。

处理方法

使用构建服务提供的镜像地址替换原DockerHub镜像地址。

  1. 替换代码文件中的镜像地址。

    1. 进入项目“凤凰商城”,单击导航“代码 > 代码托管”,找到代码仓库“phoenix-sample”。
    2. 修改以下代码文件中引用的镜像地址。
      表1 替换基础镜像源地址

      路径与位置

      修改前内容

      修改后内容

      文件“result/Dockerfile”第1行

      node:5.11.0-slim

      swr.cn-north-4.myhuaweicloud.com/codeci/node:5.11.0-slim

      文件“/vote/Dockerfile”第2行

      python:2.7-alpine

      swr.cn-north-4.myhuaweicloud.com/codeci/python:2.7-alpine

      文件“/worker/Dockerfile.j”第1行

      java:openjdk-8-jdk-alpine

      swr.cn-north-4.myhuaweicloud.com/codeci/java:openjdk-8-jdk-alpine

      文件“/worker/Dockerfile.j2”第1行

      java:openjdk-8-jdk-alpine

      swr.cn-north-4.myhuaweicloud.com/codeci/java:openjdk-8-jdk-alpine

  2. 替换构建任务中的镜像地址。

    1. 单击导航“持续交付 > 编译构建”,找到任务“phoenix-sample-ci”。
    2. 单击图标,选择“编辑”。
    3. 找到构建步骤“生成Postgres and Redis Dockerfile”,将命令行中的已有命令替换为以下命令。
      echo from swr.cn-north-4.myhuaweicloud.com/codeci/postgres:9.4 > Dockerfile-postgres
      echo from swr.cn-north-4.myhuaweicloud.com/codeci/redis:alpine > Dockerfile-redis

  3. 单击“保存并执行”,等待执行结果。

相关文档