aws(学习笔记第四十七课) codepipeline-docker-build

发布于:2025-06-27 ⋅ 阅读:(18) ⋅ 点赞:(0)

aws(学习笔记第四十七课) codepipeline-docker-build

  • 使用CodeBuild来build一个docker Image
  • 将它push到一个ECR

学习内容:

  • 在不同的stack之前传递参数props
  • 使用ssm store来保存parameters
  • 后面的push.sh能够从ssm store取得参数

1. 代码连接和修改

1.1 代码链接

代码链接(codepipeline-docker-build)

1.2 代码手动修改部分

2. 代码整体架构

2.1 base.py准备S3 bucket以及codebuild project

在这里插入图片描述

  • 准备s3 bucket里面保存上传的source.zip
  • 利用SSM(Session Manager)保存参数
  • 创建codebuild project进行build
  • codebuild project生成的docker image保存pushecr

2.2 base.py准备S3 bucket以及codebuild project

在这里插入图片描述

  • 创建source stage,这里是监视S3 bucket的上传的source.zip
  • 创建build stage,这里inputsource stageoutput
  • 最后将pipeline.pipeline_name保存到SSM SessionManager

3. 执行pipeline

python -m venv .venv
source .venv/Scripts/activate
pip -r requirements.txt
cdk --require-approval never deploy --all # 因为这里存在多个stacks,所以使用--all

3.1 执行cdk

在这里插入图片描述

3.2 检查ECR Ecs Container Registry

在这里插入图片描述

3.2 检查pipeline

在这里插入图片描述

3.3 检查ssm

这里还是求助了AI
在这里插入图片描述
查看到了cdk登录的参数。
在这里插入图片描述

4. 执行push.sh来模拟代码上传到s3 bucket

4.1 执行环境

这里选择cloudshell进行执行,因为手头没有合适的linux环境。
而且,可以看出,这里的~/.aws/下面的文件,是root账号的awscredentials。在练习阶段使用,没有问题。
在这里插入图片描述

4.2 进行git clone

git clone https://gitcode.com/gh_mirrors/aw/aws-cdk-examples

4.3 执行./push.sh

/home/cloudshell-user/aws-cdk-examples/python/codepipeline-docker-build

修改下自己的region
在这里插入图片描述
执行./push.sh
在这里插入图片描述

4.4 观察codepipeline

在这里插入图片描述
可以看出source stage执行成功,但是build stage执行失败,接下来主要进行解析错误。未完待续。。。