云效这个问题怎么解决?

云效这个问题怎么解决?云效上通过流水线 编译 Java 构建镜像推送个人版仓库。Dockerfile 里用到的基础镜像已经推送到个人仓库了,并且镜像构建时,不使用缓存选项没有勾上,但是每次构建都重新拉取了镜像。9005dc9f11958454912cf07b95f4133e.png
lQLPJxfjSk0_Om_NA0rNAiCw7bKBAp5h9qwFUxoFMDlBAA_544_842.png
lQLPJwfUX-NM1O_NAZ7NAiqwZk3YEGNwMN8FUxoSqzqtAA_554_414.png
a13328ea4b611a22d7b6e477ed22b582.png
拉取镜像这一步都花了 52s,而且镜像也不大。如果这一步不能缓存起来的话,能不能这里支持拉取 vpc 地址的镜像呢?

展开
收起
三分钟热度的鱼 2023-11-30 16:55:19 88 分享 版权
1 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    如果您在云效上通过流水线编译Java并构建镜像推送到个人版仓库时,发现每次构建都重新拉取基础镜像,即使没有勾选不使用缓存选项,可能是由于以下原因导致的:

    1. Dockerfile中使用了FROM语句指定的基础镜像的版本号:
      如果在Dockerfile中指定了具体的基础镜像版本号,即使该镜像已经推送到个人仓库,Flink Flow CI/CD系统也会尝试从远程仓库下载该版本的基础镜像,并进行构建。这种情况下,无论是否勾选了不使用缓存选项,都会重新拉取基础镜像。

    解决方法:
    将Dockerfile中的基础镜像版本号修改为通配符或者latest,这样在构建时会尽量使用本地缓存的镜像,而不会重新拉取。

    1. Docker镜像缓存机制失效:
      在某些情况下,Docker的镜像缓存机制可能会失效,导致每次构建都重新拉取基础镜像。这可能是由于Docker daemon的配置问题、构建环境中的临时文件或构建上下文的更改等引起的。

    解决方法:

    • 检查Docker daemon的配置,确保启用了镜像缓存(例如,--cache-from选项)。
    • 确保构建环境干净且没有残留的临时文件或缓存文件。
    • 如果可能,尝试在不更改构建上下文的情况下重新构建,以确保Docker可以正确使用缓存。
    2023-11-30 21:28:50
    赞同 展开评论
问答分类:
问答地址:

云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。

还有其他疑问?
咨询AI助理