You need to enable JavaScript to run this app. Jenkins升级Flutter至2.2.3后执行flutter pub get提示PATH中找不到git
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins升级Flutter至2.2.3后执行flutter pub get提示PATH中找不到git

问题根因
  • 你使用的基础镜像为jenkins/jenkins:lts-alpine,属于Alpine Linux发行版,默认不会预装git。同时你的Dockerfile中安装系统依赖的指令被注释,还错误使用了Debian系的apt命令而非Alpine对应的apk包管理命令,导致构建出的容器内部实际不存在git可执行文件。SCM阶段能正常调用git是因为该阶段调用的是Jenkins master宿主机的git,而流水线sh步骤执行时是在容器内部环境,两者的环境变量完全隔离,宿主机配置的PATH不会同步到容器内部。
  • Flutter 2.2.3版本较你之前使用的2.0.3版本,新增了执行flutter pub get等命令前主动校验git可执行性的逻辑,旧版本不会做前置检查,因此升级前流水线可以正常运行。
解决方案
  1. 修正Dockerfile中的系统依赖安装逻辑,使用Alpine对应的apk命令安装git等必要依赖,同时显式配置全局PATH避免子shell加载不到环境变量,参考修正后的Dockerfile:
FROM jenkins/jenkins:lts-alpine

USER root

# 替换原注释的apt相关指令,新增Alpine依赖安装
RUN apk update && apk add --no-cache xz unzip git

RUN cd /opt; \
wget https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_2.2.3-stable.tar.xz -O flutter_linux_2.2.3-stable.tar.xz; \
tar -xf flutter_linux_2.2.3-stable.tar.xz; \
mv flutter flutter_linux_2.2.3-stable; \
chmod -R 777 flutter_linux_2.2.3-stable; \
chown -R jenkins:jenkins flutter_linux_2.2.3-stable; \
rm flutter_linux_2.2.3-stable.tar.xz; \
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.0.2311-linux.zip -O sonar-scanner-cli-4.6.0.2311-linux.zip; \
unzip sonar-scanner-cli-4.6.0.2311-linux.zip; \
chmod -R 777 sonar-scanner-4.6.0.2311-linux; \
chown -R jenkins:jenkins sonar-scanner-4.6.0.2311-linux; \
rm sonar-scanner-cli-4.6.0.2311-linux.zip; \
wget https://nodejs.org/dist/v14.16.0/node-v14.16.0-linux-x64.tar.xz; \
tar -xf node-v14.16.0-linux-x64.tar.xz; \
mv node-v14.16.0-linux-x64 node14.16; \
chmod -R 777 node14.16; \
chown -R jenkins:jenkins node14.16; \
rm node-v14.16.0-linux-x64.tar.xz; \
cd ..

# 新增ENV指令显式配置全局PATH
ENV PATH=$PATH:/opt/flutter_linux_2.2.3-stable/bin:/opt/sonar-scanner-4.6.0.2311-linux/bin:/opt/flutter_linux_2.2.3-stable/.pub-cache/bin:/opt/node14.16/bin

USER jenkins
  1. 重新构建镜像并替换原有运行的Jenkins容器后,进入容器切换到jenkins用户执行以下命令验证配置是否生效:
# 验证git是否正常识别
which git
git --version
# 验证flutter命令正常
flutter doctor
  1. 重新执行流水线即可正常运行flutter pub get命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 21:48:04