基本上,我需要配置CI/CD与比特桶源代码到ECS容器。我想使用CodePipline部署新的ECR映像到ECS。
目前,AWS CodePipline中没有将bitbucket指定为源的选项。然而,我已经设法用webhooks配置了CodeBuild,这样它就可以构建docker文件,并在每次推送发布分支时将其推送到ECR。
我想将ECR配置为CodePipline中的“源”阶段,并将其部署到现有的ECS集群/服务中,以便自动部署。
不幸的是,如果部署步骤中出现以下错误,则会导致基本配置和工件链接:
Invalid action configuration
The image definition file imageDetail.json contains invalid JSON format
尽管“Amazon ECR”阶段提供了imageDetail.json作为输出工件,但“Amazon ECS”部署提供程序似乎并不期望它。有没有合理的方法来回避这个问题?
我知道,这是可能的配置CI/CD与比特桶API网关/Lambda CodePipeline,我也考虑使用CodeCommit而不是比特桶作为源回购-仍然,希望有一个可能的优雅的解决方案,直接使用比特桶与CodePipeline。
UPD:我最终得到了非常好的配置,如本文所述:总体思路是允许CodeBuild将源代码从bitbucket上传到S3,然后使用带有S3的CodePipeline作为源,将新的docker映像部署到ECR,并在ECS集群中发布新的任务定义修订版。S3仍然是开销,我正在为任务寻找一个更优雅的解决方案。
我有一个类似的用例,遇到了同样的问题。这是一个很长的答案,解决了我的用例。。。
根据AWS ECS Standard Deployment的官方文档,需要一个-imagedefinitions.json文件,该文件提供容器名称和图像URI。应该是这样的:
[
{
"name": "sample-app",
"imageUri": "11111EXAMPLE.dkr.ecr.us-west-2.amazonaws.com/ecs-repo:latest"
}
]
我最近刚刚解决了一个类似的问题,我想使用ECR作为管道的源,并让它将映像部署到ECS。我找到的解决方案是创建3个阶段:
以下是我正在用作构建阶段的buildspec.yml文件:
version: 0.2
phases:
install:
runtime-versions:
python: 3.7
build:
commands:
- PHP_REPOSITORY_URI=$(cat imageDetail.json | python -c "import sys, json; print(json.load(sys.stdin)['ImageURI'].split('@')[0])")
- IMAGE_TAG=$(cat imageDetail.json | python -c "import sys, json; print(json.load(sys.stdin)['ImageTags'][0])")
- echo $PHP_REPOSITORY_URI:$IMAGE_TAG
post_build:
commands:
- echo Writing image definitions file...
- printf '[{"name":"container","imageUri":"%s"}]' $PHP_REPOSITORY_URI:$IMAGE_TAG > imagedefinitions.json
artifacts:
files: imagedefinitions.json
基本上,这是读取imageDetail.json文件,提取ECR存储库URL和标记,并输出一个为ECS部署阶段格式化的json文件,这只是一个没有定制的标准阶段。
我正在尝试使用代码构建操作在AWS代码管道上部署AWS CDK应用程序。 构建和部署在本地完美工作(因为它会!)但是在CodeBuild上运行时,命令失败 这很可能是一些琐碎的事情,但我却在挠头,想弄明白是什么! 项目结构是自动生成的(使用) 对于阶段是 是(此阶段的输入目录是阶段的工件,即目录) 阶段抛出cdk ls步骤中的错误。由于上面的构建/部署步骤在本地工作(在干净的签出中),我怀疑这可能
我正在使用代码管道部署云形成模板。问题是这个Cloud形成模板有一些嵌套堆栈。嵌套堆栈模板需要在S3存储桶中。所以在触发主(父)CF模板之前,我需要将CF嵌套堆栈上传到S3。 我没有找到使用代码管道实现这一点的方法。 有什么建议吗?
我正在尝试构建一个代码管道,以: 以github Java源代码项目为例 我能造罐子(我有第二阶段的工作)。我假设第3阶段将涉及调用sam模板来进行部署。该模板是同一github repo的一部分。 我的问题是:我看不出如何将jar和模板文件提供给第三阶段来进行部署。 我附上以下三个文件以供参考: 一个构建规范,可以工作,但是我找不到生成的工件 1.buildspec.yml 2.codepipe
最简单的部署 git clone git@github.com:i5ting/shop-api.git git clone git@github.com:i5ting/shop-admin.git git clone git@github.com:i5ting/shop-h5.git ftp上传 前提是在服务器上部署ftp服务器 推荐使用gulp和ftp部署 https://github.com
我试图通过jenkins管道将azure web应用程序部署到azure form git 代码如下所示 这怎么可能?有什么方法可以将git repo url作为参数提供给azure插件吗? 谢了!
我想为我的AWS基础设施和AWS Lambda函数设置一个CI/CD管道。我们的想法是让一切都在代码中,版本控制和自动化。我只想