Docker镜像构建服务

使用AWS CodeBuild从CrowdStrike Falcon MCP源代码构建Docker镜像的自动化服务,适用于持续集成和容器化部署。

  • by gitdavehorsley
  • 本地部署
  • 更新于
在 GitHub 查看 gitdavehorsley/falcon-mcp-codebuild

使用说明

猎鹰MCP代码构建

此存储库包含用于部署CodeBuild项目的AWS CloudFormation模板,该项目从 CrowdStrike猎鹰MCP服务器 源存储库。

文件

  • template-fixed.yaml - 唯一要使用的模板 -简化的CloudFormation模板,可创建:
    • AWS CodeBuild项目使用CrowdStrike存储库中的现有Dockerfile
    • 具有必要权限的IAM角色
    • 用于生成日志的CloudWatch日志组
    • Docker镜像的ECR存储库

参数

  • Environment (String):环境名称(dev、staging、prod)。默认值:dev
  • ProjectName (字符串):CodeBuild项目和ECR存储库的名称。默认值:falcon mcp
  • ImageTag (String):用于构建镜像的Docker镜像标签。默认值:最新

快速部署

aws cloudformation deploy \
  --template-file template-fixed.yaml \
  --stack-name falcon-mcp-codebuild-dev \
  --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM

备注:该模板是硬编码的,可以从CrowdStrike Falcon MCP官方存储库构建,网址为 https://github.com/CrowdStrike/falcon-mcp.

它做什么

该模板创建了一个简单高效的构建系统:

  1. ECR存储库:使用生命周期策略自动创建(保留最后10个图像)
  2. 代码构建项目:已配置为从CrowdStrike GitHub存储库手动构建
  3. 简化构建过程:
    • 使用CrowdStrike存储库中现有的生产就绪Dockerfile
    • 直接从源代码构建Docker镜像
    • 使用双标记(最新+提交哈希)推送到ECR
    • 生成部署工件

这种方法的好处

  • 简单可靠:使用CrowdStrike维护的官方Dockerfile
  • 始终保持最新:从上游储存库的改进中获益
  • 快速构建:最小构建步骤仅关注容器化
  • 生产就绪:使用与官方图像相同的构建过程

手动构建触发器

当您想使用CrowdStrike的最新版本更新ECR映像时,手动触发构建:

aws codebuild start-build --project-name falcon-mcp-dev

何时触发构建:

  • 当CrowdStrike发布新版Falcon MCP时
  • 当您想使用主分支的最新提交进行重建时
  • 用于初始设置以获取第一张图像

ECR存储库访问

# Login to ECR
aws ecr get-login-password --region your-region | docker login --username AWS --password-stdin your-account-id.dkr.ecr.your-region.amazonaws.com

# Pull the image
docker pull your-account-id.dkr.ecr.your-region.amazonaws.com/falcon-mcp:latest

建筑

CloudFormation模板创建:

  1. ECR存储库:用于存储具有自动生命周期管理的Docker镜像
  2. 代码构建项目:内嵌BuildSpec,用于手动构建
  3. IAM角色:具有ECR权限,可实现无缝操作
  4. CloudWatch日志:用于构建监控和故障排除

独立且简洁:所有内容都嵌入到模板中,不需要外部文件或复杂的配置。

构建过程

手动触发时运行的简化构建管道:

  1. 预构建阶段:
    • 启用Docker BuildKit以实现高级Dockerfile功能
    • 登录亚马逊ECR
    • 使用提交哈希设置图像标记
  2. 构建阶段:
    • 使用CrowdStrike存储库中的现有Dockerfile构建Docker镜像
    • ECR的标签图像(包括最新标签和提交特定标签)
  3. 建造后阶段:
    • 将图像推送到ECR
    • 生成 imagedefinitions.json 用于部署

环境变量

构建环境包括标准CodeBuild变量:

  • AWS_DEFAULT_REGION -当前AWS区域
  • AWS_ACCOUNT_ID -当前AWS帐户ID
  • IMAGE_REPO_NAME -ECR存储库名称
  • IMAGE_TAG -Docker镜像标签(默认:最新)
  • DOCKER_BUILDKIT=1 -启用Docker BuildKit以实现高级Dockerfile功能

缓存

Docker层缓存通过重用未更改的层来加速后续构建。