文档

镜像构建问题

更新时间:

从海外下载基础镜像导致流水线镜像构建任务缓慢

问题描述:当您使用云效进行镜像构建时,如果你的 Dockerfile 中,指定下载 dockerhub 的镜像,比如:

  • FROM Nginx

  • FROM java:8

  • FROM openjdk:8-jdk-alpine

Flow 在构建时,就会从 Dockerhub 拉取镜像,由于海外网络问题,会导致整体构建速度极其缓慢。典型现象如下:

从 Dockerhub 下载基础镜像 且 构建缓慢

解决方案:按照以下步骤,修改您的 Dockerfile:

  1. 将境外镜像在 pull 到本地。

    docker pull openjdk:8-jdk-alpine

  2. 将基础镜像 push 到阿里云镜像仓库(cr.console.aliyun.com)的国内 region(比如北京、上海等)。

    docker tag openjdk:8-jdk-alpine registry.cn-beijing.aliyuncs.com/yournamespace/openjdk:8-jdk-alpine

    docker push registry.cn-beijing.aliyuncs.com/yournamespace/openjdk:8-jdk-alpine

  3. 修改你的 dockerfile 中 FROM,从你自己的镜像仓库下载镜像 。

    From registry.cn-beijing.aliyuncs.com/yournamespace/openjdk:8-jdk-alpine

以 dockerhub 镜像作为基础镜像的构建失败

问题描述:镜像构建中依赖了 dockerhub 的镜像作为基础镜像的构建失败,如果判断不是业务代码问题,那么有可能是 dockerhub 基础镜像升级导致的。

解决方案:以 maven:3-jdk-8 为例,找到最后一次成功的构建日志,如下所示:

[10:45:37] 3-jdk-8: Pulling from library/maven
[10:45:38] Digest: sha256:ff18d86faefa15d1445d0fa4874408cc96dec068eb3487a0fc6d07f359a24607
[10:45:38] Status: Image is up to date for maven:3-jdk-8

复制上述 sha256,在Dockerfile中将基础镜像改成 maven:3-jdk-8@sha256:ff18d86faefa15d1445d0fa4874408cc96dec068eb3487a0fc6d07f359a24607 即可。

  • 本页导读 (0)
文档反馈