Jenkins服务器docker-compose命令未找到,无插件时如何安装配置?
从你给出的错误日志来看:
23:51:57 ./environment.sh: line 3: docker-compose: command not found
23:51:57 Execution failed for task ':startDockerEnvironment'.
核心问题就是Jenkins所在的服务器上没有安装docker-compose,或者Jenkins的执行环境找不到它的路径。既然没法用docker-compose插件,咱们手动在服务器上完成安装配置就好,以下是详细步骤:
1. 先确认Docker已正常安装
docker-compose依赖Docker引擎,所以先在Jenkins服务器的终端里验证Docker是否可用:
docker --version
如果能输出类似Docker version 24.0.6, build ed223bc的版本信息,说明Docker没问题;如果没安装,先根据你的服务器系统(Ubuntu/CentOS等)完成Docker的安装。
2. 安装docker-compose
针对Ubuntu/Debian/CentOS等Linux发行版
执行以下命令完成安装(以最新稳定版v2.23.3为例,你可以替换成官方最新的版本号):
- 下载docker-compose二进制文件到系统可执行路径:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 给文件添加执行权限:
sudo chmod +x /usr/local/bin/docker-compose
- 验证安装成功:
docker-compose --version
如果能输出Docker Compose version v2.23.3就说明安装好了。
3. 确保Jenkins能正常调用docker-compose
情况一:Jenkins找不到docker-compose的路径
有时候Jenkins的执行环境PATH变量里没有包含/usr/local/bin,你可以在你的environment.sh脚本开头添加一行,把路径加入环境变量:
export PATH=$PATH:/usr/local/bin
情况二:Jenkins用户没有Docker权限
默认Jenkins用户可能没有执行Docker命令的权限,导致即使装了docker-compose也没法正常运行,这时候把jenkins用户加入docker组:
sudo usermod -aG docker jenkins
然后重启Jenkins服务让权限生效:
sudo systemctl restart jenkins
4. 重新测试Jenkins任务
做完以上步骤后,重新运行你的Jenkins任务,应该就能正常执行docker-compose命令,启动你配置的MySQL、phpMyAdmin和Dropwizard服务了。
内容的提问来源于stack exchange,提问作者M1M6

