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

使用Docker作为Jenkins代理时目录列表出现异常行为的问题咨询

使用Docker作为Jenkins代理时目录列表出现异常行为的问题咨询

嘿,这个问题确实容易让人摸不着头脑,我刚接触Jenkins Docker Agent的时候也困惑过!其实核心是你误解了命令的执行环境,还有Jenkins Docker插件的默认行为,我给你拆解一下:

首先明确一个关键事实:

所有sh步骤100%都是在你指定的tomcat:jre21-temurin容器内执行的,没有任何命令跑到Jenkins主机上去——这是你疑惑的根源。

为什么ls和pwd看起来像是主机的workspace内容?

Jenkins的Docker Agent插件有个默认操作:

  • 它会把Jenkins主机上的当前项目工作目录(比如/var/jenkins_home/workspace/你的流水线名称)挂载到容器内的相同路径;
  • 同时自动把容器的默认工作目录切换到这个挂载路径。

所以当你执行不带路径的ls时,你看的是容器内这个挂载点的内容(也就是主机workspace的文件);pwd输出的是容器内的挂载路径,而不是Tomcat容器本身的默认目录(比如/)。

为什么ls /usr/local这类命令又显示容器内的内容?

因为这些命令指定了绝对路径,直接访问容器自身的文件系统,完全不受当前工作目录(挂载点)的影响,所以能看到Tomcat容器自带的目录和文件。

给你个验证小技巧:

你可以在steps里加一行sh 'mount',就能看到Jenkins工作目录挂载到容器的具体记录;或者执行sh 'ls /',就能同时看到容器根目录的原生内容,以及那个挂载进来的workspace目录啦。

备注:内容来源于stack exchange,提问作者rebel_roar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 06:28:05