在AWS CodeBuild上提供自定义Docker映像需要很长时间

问题描述 投票:0回答:1

我的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个回答
0
投票

Windows映像很大,因此配置时间(包括将自定义映像下拉到CodeBuild实例的时间将相对较长。

有两种方法可以帮助您:

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

    • 对于Microsoft Windows,请将Windows容器与版本为microsoft / windowsservercore:10.0.x的容器操作系统一起使用(例如,microsoft / windowsservercore:10.0.14393.2125)。 Link
© www.soinside.com 2019 - 2024. All rights reserved.