docker之jenkins安装与配置

拉取jenkins镜像

docker pull jenkins/jenkins:lts

这是最新版的jenkins 镜像,其他的jenkins镜像仓库都被官方弃用了

创建jenkins 容器

docker run -d -p 8090:8080 -p 50000:50000 \
-v /opt/jenkins_docker/:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \
--privileged=true \  
--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
插件下载加速

 sed -i 's#http://updates.jenkins-ci.org/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g' default.json && sed -i 's#http://www.google.com#https://www.baidu.com#g' default.json

在这里插入图片描述
该好后 重启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

更换容内的jdk

  1. 复制解压后的jdk到 容器的/usr/local
    docker cp  jdk-1.8_dragonwell_8.4.4  <容器名称或者ID>:/usr/local
    
  2. 进入容器 -u root 以root权限进入否则出现权限问题
    docker exec -it  -u root <容器名称或者ID> bash
    
  3. 安装Vim (可选)
    apt-get update
    apt-get install vim
    
  4. 设置JAVA环境变量
    vim /etc/profile
    
    export JAVA_HOME=/usr/local/jdk-1.8_dragonwell_8.4.4
    export PATH=${JAVA_HOME}/bin:$PATH
    
    source /etc/profile
    
    java -version
    
  5. 退出容器并重启
    exit
    docker restart <容器名称或者ID>
    

更换容器类的jenkins 包

  1. 同理以root用户进入jenkins容器

    docker exec -it  -u root <容器名称或者ID> bash
    
  2. 查看容器中jenkins war包的位置,并备份原来的war包

    whereis jenkins
    cd /usr/share/jenkins
    cp jenkins.war jenkins.war.bak
    
  3. 在容器中下载jenkins的最新war包

    wget http://mirrors.jenkins.io/war/latest/jenkins.war
    
  4. 退出容器并重启

    exit
    docker restart <容器名称或者ID>
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值