【问题标题】:Provisioning a custom Docker image on AWS CodeBuild takes a very long time在 AWS CodeBuild 上预置自定义 Docker 映像需要很长时间
【发布时间】:2020-09-13 11:14:42
【问题描述】:

我的 Dockerfile:

FROM mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2016
COPY AWSCLIV2.msi .
RUN Start-Process msiexec.exe -Wait -ArgumentList '/I AWSCLIV2.msi /quiet /qn /norestart /log awscli.log'
RUN rm AWSCLIV2.msi

我的 CodeBuild 环境需要能够构建 .NET Framework 项目以及使用 AWS CLI。由于限制,我只能有一个 CodeBuild 阶段。我将使用上述 Dockerfile 创建的 docker 映像推送到 ECR,并将我的 CodeBuild 环境设置为使用该映像。但是,配置大约需要 10 分钟。

CodeBuild 提供仅持续约 15 分钟的缓存,这对于更不频繁的构建没有帮助。我还发现了其他人链接到 https://github.com/aws/aws-codebuild-docker-images/issues/26#issuecomment-370177343 的这个解决方案,但我不确定它如何应用于 Windows 容器。

如果有人对减少配置时间有任何建议,我将不胜感激。

【问题讨论】:

    标签: amazon-web-services docker aws-codepipeline aws-codebuild amazon-ecr


    【解决方案1】:

    Windows 镜像较大,因此包括将自定义镜像下拉到 CodeBuild 实例的时间在内的配置时间会比较长。

    有两种方法可以提供帮助:

    1. 为构建环境使用 CodeBuild 提供的映像,因为这些映像的最新版本已预先缓存在构建服务器上。
    2. 自定义镜像使用与 CodeBuild 镜像相同的基础层,这样基础层可以重复使用,不会产生下载时间。例如:

      • 对于 Microsoft Windows,请使用具有 microsoft/windowsservercore:10.0.x 版本的容器操作系统的 Windows 容器(例如,microsoft/windowsservercore:10.0.14393.2125)。 Link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-06
      • 1970-01-01
      • 2022-08-03
      • 2019-05-05
      • 2016-12-19
      • 1970-01-01
      • 2011-12-22
      • 1970-01-01
      相关资源
      最近更新 更多