当前位置: 首页 > 知识库问答 >
问题:

使用AWS代码构建构建Windows容器

洪开济
2023-03-14

我开始学习AWS的CI/CD功能。到目前为止,我一直在基于microsoft/windowsservercore映像在Windows Server 2016本地创建docker映像,并手动将其推送到ECR(amazon容器注册表)。

在这一点上,我没有试图在CodeBuild中编译应用程序。我只是想建造容器。在本地,二进制文件位于子目录中,并复制到容器中。

CodeBuild项目失败,出现错误:无法在此平台上使用映像操作系统“windows”

我很确定这是因为构建环境是基于linux的。

有人知道是否有可能为AWS创建一个支持构建Windows容器映像的自定义构建环境吗?

共有3个答案

司空高义
2023-03-14

由于这个答案出现在我的谷歌搜索的顶部,并且已经过时,应该注意的是,截至2018年5月25日,AWS确实为代码构建提供了一个窗口图像。

姜聪
2023-03-14

正如克莱尔的回答所指出的,目前在视窗服务器平台上不支持Docker-in-Docker(DIND),AWS CodeBuild只在Docker中运行构建;而不是直接在操作系统上。另一方面,AWS CodeBuild对Windows Server的支持现在一般可用。

--

这不是AWS代码构建,但您可以在AWS上构建自己的自动化容器构建系统,同时使用一些服务。下面是它在高级别上的外观:

  1. 使用Amazon机器映像(AMI)“带容器的Windows Server 2016”部署新的EC2实例

您需要确保EC2实例可以通过其IAM实例配置文件访问AWS Systems Manager。我还没有把它付诸实践,但它已经在我的待办事项中有一段时间了。请随意试一试。

宰父嘉胜
2023-03-14

AWS CodeBuild不支持Windows构建环境,但正在开发中。您可以在此处注册以获取有关Windows代码生成支持的通知。

但是,CodeBuild在Docker上运行所有构建。Microsoft尚不支持在Windows Docker容器中生成Docker映像(有关详细信息,请参阅此GitHub问题)。

 类似资料:
  • 有没有办法在AWS CodeBuild上删除用户?我们正在构建一个Yocto项目,如果我们是root(Bitbake健全性检查),它在代码构建上会失败。 我们不顾一切的方法也不起作用: 在以下情况下失败: 你知道我们怎么把它变成非根的吗?

  • Your browser does not support the video tag.

  • 我创建了一个AWS代码管道,它分四个阶段运行。1) 来自github的源代码,2)将后端部署到Elastic Beanstalk,3)使用Codebuild构建前端代码(使用下面的buildspec文件),以及4)将webpack的结果部署到S3。 到目前为止,除了第三阶段的结果外,一切都按预期进行。Codebuild似乎将工件设置为源文件,而不是webpack构建的结果。在bucket和文件夹中

  • 14. 构建代码 Spring Boot并不要求任何特殊的代码布局,然而,存在一些有用的最佳实践。 14.1 使用“default”包 如果一个类没有声明包,则认为这个类位于“默认包”中。通常不鼓励使用“默认包”,应当避免使用它。对于使用了@ComponentScan、@EntityScan或@SpringBootApplication注解的Spring Boot程序,“默认包”可能会导致特殊问题

  • 我正在尝试使用代码构建操作在AWS代码管道上部署AWS CDK应用程序。 构建和部署在本地完美工作(因为它会!)但是在CodeBuild上运行时,命令失败 这很可能是一些琐碎的事情,但我却在挠头,想弄明白是什么! 项目结构是自动生成的(使用) 对于阶段是 是(此阶段的输入目录是阶段的工件,即目录) 阶段抛出cdk ls步骤中的错误。由于上面的构建/部署步骤在本地工作(在干净的签出中),我怀疑这可能

  • 我正在使用CodeBuild来构建Scala sbt项目。在构建过程中,我将执行以下步骤。 来自Git的签出代码。 安装所有sbt工具。 构建代码。 创建Docker 发布docker文件到AWSECR 使用kustomize实用程序更新位于项目根文件夹中的K8s部署文件,其中包含已发布图像的最新信息。 将此文件发布到AWS S3存储桶,以便在AWS EKS上运行进一步部署。 不幸的是,最后一步失