如何在Bash中运行Jenkins-cli?Docker脚本实现咨询
嘿,我来帮你搞定这两个问题——Bash环境下运行Jenkins-cli的方法,还有你提供的Docker脚本的可行性分析。
在Bash环境中运行Jenkins-cli的步骤
要在Bash里用Jenkins-cli,核心是先拿到jenkins-cli.jar,再通过Java调用它,具体步骤如下:
- 第一步:获取jenkins-cli.jar
这个Jar包是从你正在运行的Jenkins实例里下载的,用Bash执行这条命令就行:
比如你的Jenkins跑在本地,就把wget http://<你的Jenkins地址>:8080/jnlpJars/jenkins-cli.jar<你的Jenkins地址>换成localhost。 - 第二步:执行Jenkins-cli命令
基本调用格式是:
举个例子,查看Jenkins版本:java -jar jenkins-cli.jar -s http://<Jenkins地址>:8080 <具体命令>
如果需要认证,你可以加用户名密码参数:java -jar jenkins-cli.jar -s http://localhost:8080 version
也可以用Jenkins的API token替代密码,或者配置SSH密钥认证(更安全)。java -jar jenkins-cli.jar -s http://localhost:8080 --username admin --password <你的密码> version
你的Docker脚本可行性分析&修正
先看你提供的脚本——它目前没法实现“下载Jenkins、获取jenkins-cli.jar并在Bash中运行”的功能,问题出在这几点:
- 脚本只安装了Java 9,但Jenkins对Java版本有严格要求:旧版Jenkins(适配ubuntu14.04的版本)通常需要Java 8,Java 9是过渡版本,兼容性很差;
- 脚本里没有安装Jenkins本身,也没有启动Jenkins服务——
jenkins-cli.jar是从运行中的Jenkins实例下载的,没跑Jenkins的话根本拿不到这个Jar包; - 脚本最后是
ap...,明显没写完,大概率是apt-get相关命令被截断了。
我给你改了个能实现需求的Dockerfile:
FROM ubuntu:14.04 # 更新系统并安装基础依赖 RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -y wget software-properties-common && \ # 安装Java 8(适配ubuntu14.04+旧版Jenkins的最优选择) add-apt-repository ppa:webupd8team/java -y && \ apt-get update && \ echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections && \ apt-get install -y oracle-java8-installer && \ # 添加Jenkins官方源并安装Jenkins wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | apt-key add - && \ echo "deb https://pkg.jenkins.io/debian binary/" >> /etc/apt/sources.list.d/jenkins.list && \ apt-get update && \ apt-get install -y jenkins && \ # 启动Jenkins并等待初始化完成(时间根据机器性能调整) service jenkins start && \ sleep 60 && \ # 下载jenkins-cli.jar到/opt目录 wget http://localhost:8080/jnlpJars/jenkins-cli.jar -P /opt/ # 设置工作目录为/opt,方便调用jar包 WORKDIR /opt # 默认进入Bash环境 CMD ["/bin/bash"]
这个修正后的脚本做了这些事:
- 换成Java 8,解决兼容性问题;
- 添加Jenkins官方源,安装并启动Jenkins服务;
- 等待Jenkins初始化完成后,自动下载
jenkins-cli.jar; - 最后进入Bash环境,你可以直接执行
java -jar jenkins-cli.jar -s http://localhost:8080 <命令>来使用CLI。
⚠️ 注意:Jenkins初始化后会生成初始密码,存放在容器里的/var/lib/jenkins/secrets/initialAdminPassword,你需要用这个密码完成初始化或者创建用户后,才能执行大部分CLI命令哦。
内容的提问来源于stack exchange,提问作者Hithesh
相关产品推荐
相关产品推荐

