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

Jenkins执行docker exec -it无响应,无法进容器执行Python脚本

解决Jenkins Shell执行Docker容器命令的问题

问题根源

Jenkins的Shell执行环境是非交互式的,而你本地用的docker exec -it里的-it参数是给交互式终端用的:-i保持标准输入打开,-t分配伪终端,在非交互式环境下用这两个参数会导致命令挂起无响应,自然没法执行后续的Python脚本。

正确执行方式

不需要先进入容器bash再执行命令,直接通过docker exec在容器内一次性完成脚本执行:

  1. 直接执行单条命令
docker exec docker-name python xx.py config.yaml
  1. 执行多条命令或指定工作目录
    如果脚本不在容器默认工作目录,需要先切换目录再执行,用sh -c包裹命令串:
docker exec docker-name sh -c "cd /容器内脚本所在绝对路径 && python xx.py config.yaml"

额外注意事项

  • 确保Jenkins用户有Docker操作权限:把jenkins用户加入docker组,执行usermod -aG docker jenkins,之后重启Jenkins服务。
  • 确认容器内的Python命令路径:如果容器内默认是python3而非python,要替换成对应命令,或者用绝对路径(比如/usr/bin/python3)。
  • 脚本和配置文件用绝对路径:避免相对路径在非交互式环境下解析错误,确保xx.py和config.yaml的路径是容器内的绝对路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 15:55:20