拉取镜像失败导致构建失败
问题现象
构建失败,报错信息为“制作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镜像地址。
- 替换代码文件中的镜像地址。
- 进入项目“凤凰商城”,单击导航“代码 > 代码托管”,找到代码仓库“phoenix-sample”。
- 修改以下代码文件中引用的镜像地址。
表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
- 替换构建任务中的镜像地址。
- 单击导航“持续交付 > 编译构建”,找到任务“phoenix-sample-ci”。
- 单击图标
,选择“编辑”。
- 找到构建步骤“生成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
- 单击“保存并执行”,等待执行结果。