Jenkins | 笔记

2022-04-01 16:55:16 浏览数 (1)

引言

Docker

建议使用的 Docker 映像是 jenkinsci/blueocean image来自 the Docker Hub repository。 该镜像包含当前的长期支持 (LTS) 的 Jenkins 版本 (可以投入使用) ,捆绑了所有 Blue Ocean 插件和功能。这意味着你不需要单独安装 Blue Ocean 插件。 jenkinsci/blueocean 每次发布Blue Ocean新版本时,都会发布新镜像。您可以在标签 page页上看到以前发布的镜像版本列表 。 您还可以使用其他 Jenkins Docker 镜像(在 Docker Hub上可通过 jenkins/jenkins 获取)。 但是,这些不会随Blue Ocean的发布而提供,需要通过 Jenkins 中的 Manage Jenkins > Manage Plugins 页面进行安装。 在 Blue Ocean 入门中了解更多信息。

代码语言:javascript复制
docker run 
  -u root 
  --rm   
  -d  
  -p 8080:8080  
  -p 50000:50000  
  -v jenkins-data:/var/jenkins_home  
  -v /var/run/docker.sock:/var/run/docker.sock  
  jenkinsci/blueocean 

--privileged : 使用该参数,container内的root拥有真正的root权限, 否则,container(容器)内的root只是外部的一个普通用户权限, privileged启动的容器可以看到很多host上的设备,并且可以执行mount, 甚至允许你在docker容器内启动docker容器。

Docker Compose

docker-compose.yml

代码语言:javascript复制
version: '3'
services:
    jenkins:
        image: jenkinsci/blueocean
        container_name: jenkins
        environment:
            - TZ=Asia/Shanghai
        volumes:
            - ./jenkins-data:/var/jenkins_home
            - /var/run/docker.sock:/var/run/docker.sock
        ports:
            - "8083:8080"
            - "50000:50000"
        privileged: true
        user: root
        restart: always

注意: 我这里是 8083:8080,因为有时候 宿主机8080 已被占用 注意: ./jenkins-data./ 表示当前目录,一定要有 ./,不然会认为 jenkins-data 是一个挂载点

启动

代码语言:javascript复制
docker-compose up -d

查看密码并登录

代码语言:javascript复制
docker logs -f jenkins

补充:

或者查看密码

代码语言:javascript复制
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword

Q&A

Q: 使用宝塔面板 配置网站的 nginx Nginx 代理 8083后,页面可以访问,但是页面引用 (/static) 的前端css等文件 404,必须带上端口号 8083才能正常访问页面, A: 注释掉

补充

Nginx

代码语言:javascript复制
server {

    listen 80;
	listen 443 ssl http2;
    server_name jenkins.moeci.com;
    root /www/wwwroot/jenkins.moeci.com;
    
    # proxy to 8083
    location / {
        proxy_pass http://localhost:8083;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header REMOTE-HOST $remote_addr;
        add_header X-Cache $upstream_cache_status;
        # cache
        add_header Cache-Control no-cache;
        expires 12h;
    }
    
}

安装推荐的插件: 无法连接到Jenkins

参考: - 无法连接到Jenkins - 灰信网(软件开发博客聚合) - Docker 快速安装Jenkins完美教程 (亲测采坑后详细步骤) - 付宗乐 - 博客园 - docker安装jenkins---完美解决jenkins插件安装失败问题_沉淀技术这十年的博客-CSDN博客_jenkins插件安装失败 - Docker 安装 Jenkins 并解决初始安装插件失败问题_docker_脚本之家 - jenkins 下載外掛失敗 有效的處理辦法(親測)_osc_7z601p6x - MdEditor

解决:

注意: 此方法经过测试 失败

修改 插件中心 url

https://updates.jenkins.io/update-center.json 修改为 http://updates.jenkins.io/update-center.json, 即 httpshttp

或者改为 清华大学官方镜像 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

重启 docker 的 jenkins 容器

代码语言:javascript复制
docker-compose down
docker-compose up -d

参考

感谢帮助!

  • Docker:docker安装部署jenkins - 怒吼的萝卜 - 博客园
  • 使用docker部署Jenkins及初始配置 | 二丫讲梵
  • docker-compose 安装jenkins的正确姿势 实践笔记_JanelSirry's Blog-CSDN博客
  • 安装Jenkins

本文作者: yiyun

本文链接: https://cloud.tencent.com/developer/article/1970861

版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

0 人点赞