我的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容器。
[如果有人对减少配置时间有任何建议,我将非常感谢。
Windows映像很大,因此配置时间(包括将自定义映像下拉到CodeBuild实例的时间将相对较长。
有两种方法可以帮助您:
将自定义图像的基础层与CodeBuild图像相同,因此可以重复使用该基础层,并且不会浪费下载时间。例如: