You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ECS Fargate部署Jenkins:启用ECS代理任务的工作区文件访问

解决ECS Fargate上Jenkins Docker代理工作区无法访问的问题

核心原因

ECS Fargate上的Jenkins构建代理是临时任务容器,构建完成后会被销毁,工作区数据仅存于代理容器的本地存储中,Jenkins主节点无法直接访问这些临时存储,导致原生Workspaces链接失效。

可行解决方案

1. 为代理容器挂载持久化存储

在ECS代理任务模板中,给容器挂载EFS(弹性文件系统)作为持久化工作区:

  • 配置Jenkins代理的Docker容器,将工作区目录(如/var/jenkins_home/workspace)挂载到EFS的指定路径
  • 在Jenkins作业配置里,指定自定义工作区路径为EFS挂载的目录
  • 构建完成后,工作区文件会保留在EFS上,只要Jenkins主节点也能访问同一个EFS,就能通过Workspaces链接直接查看文件

2. 构建后归档工作区文件

在Jenkins作业中添加构建后步骤,把工作区文件归档到Jenkins主节点或外部存储:

  • 使用Archive the artifacts插件,指定需要归档的文件路径(比如**/*),构建完成后文件会被上传到Jenkins主节点存储
  • 归档后可直接在作业的Artifacts标签页查看、下载文件,替代原生Workspaces功能
  • 若需要长期存储,也可通过Jenkins的S3插件将文件归档到S3

3. 配置远程文件系统浏览器插件

安装Remote File System Browser插件,让它对接代理的持久化存储(如EFS):

  • 在插件配置中,选择NFS类型(对应EFS),填写EFS的挂载地址和路径
  • 为Jenkins作业关联该文件系统浏览器,此时Workspaces链接会跳转至插件提供的界面,直接访问EFS上的工作区文件

4. 临时保留代理容器(仅用于调试)

修改ECS任务定义,设置任务保留策略为RETAIN,构建完成后不销毁代理容器:

  • 在ECS控制台或任务定义JSON中,延长stopTimeout时间,或配置任务完成后保留容器
  • 之后在Jenkins的「节点管理」页面找到对应代理节点,查看工作区路径,再通过ECS任务的exec命令直接访问容器内文件(需提前开启Fargate的exec权限)

注意事项

  • 使用EFS时,要确保Jenkins主节点和代理任务在同一VPC,且安全组允许NFS端口(2049)的访问
  • 归档文件会占用Jenkins主节点存储,需定期清理无用归档避免溢出
  • 保留代理容器会增加ECS资源消耗,仅适合临时调试,不建议生产环境长期使用

内容的提问来源于stack exchange,提问作者stonewalker747

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 00:22:15