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

Jenkins使用ECR托管Docker代理构建Lambda无工作区解决方案咨询

解决方案

Jenkins中Docker代理默认销毁是pipeline agent模块的原生设计,你可以通过以下几种方案实现工作区留存:

方案1:挂载外部持久化卷

这是适用性最高的方案,定义Docker代理时将Jenkins宿主机或共享存储的固定目录,挂载到容器内的工作区路径,容器销毁后数据会保留在外部存储中。
参考Pipeline配置片段:

pipeline {
  agent {
    docker {
      image '你的ECR镜像完整地址'
      args '-v /宿主机持久化目录:/var/jenkins_home/workspace/当前任务名称'
    }
  }
  stages {
    stage('构建Lambda') {
      steps {
        // 原有构建逻辑
      }
    }
  }
}

如果是多节点Jenkins集群,建议使用EFS、NFS等共享存储作为挂载源,保证所有集群节点都能访问留存的工作区数据。

方案2:关闭工作区自动清理规则

如果工作区删除是清理插件或任务配置触发的,可对应调整配置:

  • 进入对应任务的配置页,在「构建后操作」板块删除Delete workspace when build is done相关配置项
  • 如果是全局生效的清理规则,进入Manage Jenkins -> System -> Workspace Cleanup,将当前任务加入排除列表

方案3:归档核心工作区内容

如果不需要留存完整工作区,仅需要核心构建产物,可以在构建流程末尾添加归档步骤,将需要的内容存入Jenkins构建产物库,其他任务可直接拉取对应产物使用:

post {
  always {
    archiveArtifacts artifacts: '**/lambda打包文件.zip, **/build目录/**', fingerprint: true
  }
}

注意:选择持久化卷挂载方案时,需要确认容器运行用户对挂载的宿主机目录有读写权限,避免构建阶段出现权限报错。

相关报错截图:
报错截图

内容的提问来源于stack exchange,提问作者Micaela Marrero Suarez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:45:03