拉取jenkins镜像
docker pull jenkins/jenkins:lts
这是最新版的jenkins 镜像,其他的jenkins镜像仓库都被官方弃用了
创建jenkins 容器
docker run -d -p 8090:8080 -p 50000:50000 \
-v /opt/jenkins/:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \
--restart=always \
--name jenkins \
jenkins/jenkins:lts
-d:后台模式启动
-p 端口映射 将本地的 8090 端口绑定到容器的 8080 端口上
基于 JNLP 的 Jenkins 代理通过 TCP 端口 50000 与 Jenkins master 进行通信
-v:(挂载卷)主机的目录 /opt/jenkins 映射到容器的 /var/jenkins_home。
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai 修改jenkins的时区
–name:给新创建的容器命名,
–restart=always 当docker重启后 容器也会自动重启
docker ps -a
发现容器已经退出运行
我们查看日志
docker logs jenkins
发现是volume(j卷)的权限问题,当映射本地卷(/opt/jenkins)时,
/var/jenkins_home 的用户为root,jenkins的usr就没有访问权限,
我们用以下命令
docker run -ti --rm --entrypoint="/bin/bash" jenkins/jenkins:lts -c "whoami && id"
得知容器中jenkins user的uid为1000
此时 赋予 uid 1000 的文件操作权限
chown -R 1000:1000 /opt/jenkins
启动并查看日志
docker start jenkins &&
docker -t -f --tail 100 jenkins
jenkins正常启动,但是在日志中 有可能发现以下错误日志
说明,这个地址连接超时,下在插件会失败,有两个解决办法
首先在挂载的/opt/jenkins目录下找到hudson.model.UpdateCenter.xml
文件
vi hudson.model.UpdateCenter.xml
第一种:将https://updates.jenkins.io/update-center.json
的s去掉
第二种:换成国内的链接,
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
然后重启容器
docker restart jenkins
打开网址
http://xxx.xxx.32.xxx:8090
出现
至此安装成功!
解锁jenkins
jenkins启动后,使用docker logs jenkins
第一个红框即jenkins 初始密码 这个密码保存在第二个红框路径下
同时 挂载在/opt/jenkins目录下
输入密码后,可能提示
解决方法如下:
修改hudson.model.UpdateCenter.xml
,方法再上文中⬆
修改/opt/jenkins/updates/default.json
因jenkins在安装插件时需要检查网络,默认是访问google的
我们需要改成百度的www.baidu.com
该好后 重启jenkins 无日志异常
docker restart jenkins && docker logs -t -f --tail 100 jenkins
插件安装 选择新手入门
创建账户
实例配置
配置jenkins
点击Manage Jenkins ==> Global Tool Configuration
1. 配置 Git
如果发现如下提示
发现默认配置的git 找不到执行文件地址
这时我们
进入容器
docker exec -it 7a7cb53e9f78 /bin/bash
查看容器虚拟主机系统版本
cat /etc/issue
Docker 退出容器不停止容器运行
Ctrl+P+Q
查看git版本 确定git是否自动安装,并且查询git安装地址
git --version && whereis git
将这个地址填入
解决问题
配置Git 拉取凭据
添加ssh
为什么配置ssh私钥?jenkins 将用这个私钥去和git仓库建立连接
仓库 配置 ssh公钥
git 配置完成
2. 配置JDK
在jenkins 挂载的文件下创建global_env文件夹,
上传jdk解压
在Manage Jenkins ==> Global Tool Configuration
重启jenkins / jenkins 容器即可使用
新增jdk配置
jenkins 在容器里工作所以这里填写 jenkins 挂载卷 所对应的目录
只要配置了jdk 你的项目就会优先使用你配置的jdk
3. 配置Gradle
Global Tool Configuration配置方式同上
下面主要是 项目构建配置
选择 引用gradle script
选择版本和填入任务
注意这种方式 在项目根目录下必须有gradle的脚本,否则会报任务不存在的错误,如果脚本在下级目录,建议使用shell方式