docker安装jenkins并实现CICD流程

docker安装jenkins并实现CICD流程

本文目录

    • docker安装jenkins并实现CICD流程
      • 安装命令
      • 初始化设置
      • 更新jenkins及插件
        • 更新jenkins版本
        • 更新插件
      • 创建第一个任务
      • 修改配置
        • 插件更新中心
        • 时区设置

安装命令

官方安装参考:https://www.jenkins.io/zh/doc/book/installing/

  • 拉取docker镜像,使用jenkinsci/blueocean
docker pull jenkinsci/blueocean:latest
  • 使用dockerwin环境下将\换成^

    docker run \
      --name jks \
      --privileged=true \
      -u root \
      -d \
      -p 8121:8080 \
      -p 50010:50000 \
      -v /Users/xxx/project/jks:/var/jenkins_home \
      -v /var/run/docker.sock:/var/run/docker.sock \
      jenkinsci/blueocean
    
  • 使用docker-compose

    // docker-compose.yml
    version: '3'  #定义版本
    services:  
      jenkins:
        container_name: jenkins
        image: jenkinsci/blueocean:latest
        user: root
        priveleged: true  #开启特权
        ports:  #定义映射端口
        - 8080:8080
        - 50000:50000
        volumes:  #定义挂载卷
        - /var/jenkins-data:/var/jenkins_home
        // - /usr/bin/docker:/usr/bin/docker
        - /var/run/docker.sock:/var/run/docker.sock
    

    启动命令

    docker-compose up -d
    
  • 查看docker容器

初始化设置

docker容器启动较慢,一开始打开web网页的时候画面如下

Please wait while Jenkins is getting ready to work

过程中本地挂载的文件夹也会下载文件

进入docker容器内部查看log

docker exec -it jks /bin/bash

或使用命令

docker log jks

或使用docker desktop

出现如下字样表示初始化成功

2024-02-22 14:29:16 2024-02-22 06:29:16.820+0000 [id=54]        INFO    jenkins.InitReactorRunner$1#onAttained: Completed initialization
2024-02-22 14:29:16 2024-02-22 06:29:16.863+0000 [id=32]        INFO    hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running

密码存储的位置如下,在上图的log中也可以查看到

docker logs jks
或
docker exec -it jks /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword

安装插件,选择安装推荐的插件即可

等待安装,可能有一部分安装失败,一般是因为jenkins版本问题,需要进入主页面,更新后再安装,右下角选择【继续】即可

创建一个管理员账户

实例配置,不要使用localhost,使用docker的宿主机地址:http://host.docker.internal:8121/这里是为了配置git仓库的webhook时,能够访问通,使用域名也可以

配置完成后【重启】jenkins,使用刚刚注册的用户登陆

更新jenkins及插件

进入主页,可以看到右下角的Jenkins版本

更新jenkins版本

选择右上角橙色警示⚠️,查看配置插件,blueocean镜像中的jenkins停留在2023年,版本为2.346.3,这会导致很多插件报错,如下图

Mina SSHD API :: Core (2.12.0-90.v9f7fb_9fa_3d3b_)
Jenkins (2.361.4) or higher required

一直下拉,选择【自动升级】Jenkins

如果下拉没有升级,出现的画面如下

则回到主页面,选择【系统管理】,也可以找到升级

等待下载jenkins.war完成后,重启镜像

再次进入,jenkins已更新,此时登陆页面也变了

更新插件

更新jenkins之后再更新插件,主页面,选择【系统管理】-【插件管理】

更新全部已经存在的插件

安装完再次重启jenkins镜像,登陆进入即可正常使用

创建第一个任务

主页面左侧【新建任务】

基础项目有Freestyle project流水线(pipeline),选择创建pipeline

可以只设置一个hello worldJenkinsfile

点击应用和保存,跳转

pipeline {
    agent any

    stages {
        stage('Hello') {
            steps {
                echo 'Hello World'
            }
        }
    }
}

点击【立即构建】

选择构建历史,查看【Console Output】,查看构建

修改配置

插件更新中心

镜像地址

维护方镜像中心地址
Jenkins中文社区https://updates.jenkins-zh.cn/update-center.json
清华大学https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
华为开源镜像站https://mirrors.huaweicloud.com/jenkins/updates/update-center.json

方法一:web页面设置
【系统管理】-【插件管理】-【高级设置】

方法二:直接修改配置文件

配置文件在docker镜像内的位置:/var/jenkins_mount/hudson.model.UpdateCenter.xml

或宿主机映射都可以找到这个文件

打开文件,修改url标签的内容即可

时区设置

默认是UTC时区标准时间,导致了jenkins的构建时间和宿主机差了8个小时

  • 方法一:用户设置中选择时区

  • 方法二:【Manage Jenkins】-【Script Console】,终端输入命令修改

    System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone','Asia/Shanghai')
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/446922.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker安装tomcat

目录 一、安装Docker 二、Docker安装tomcat 三、安装tomcat 一、安装Docker 安装docker阅读 Docker整理之安装(1)-CSDN博客https://blog.csdn.net/ywanju/article/details/135442406 二、Docker安装tomcat 本案例安装的tomcat最新版本 搜(dockerhub搜索镜像版本) 拉(拉…

十二要素应用: 云原生应用最佳实践

本文介绍了开发部署云原生应用的一套最佳实践,通过这套最佳实践,可以最大限度利用云原生的能力,创建灵活、健壮、易管理的现代云原生应用程序。原文: The Twelve-Factor App: Best Practices for Cloud-Native Applications[1] 导言 软件如今…

爬虫与DataFrame对象小小结合

import pandas as pd import requests from lxml import etree #数据请求 url"https://www.maigoo.com/brand/list_1715.html" headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari…

【实验报告】C语言实现猜单词的小游戏

之前帮别人写的一个简单的报告,无偿分享给大家~代码在后面,有一些图片出于懒惰没有上传。比较简单,喜欢的话关注我~,请勿商用~ 1 系统功能模块结构图 该程序主要思路: 头文件设计,存储结构设计&#xff0…

Jmeter+Ant+Git/SVN+Jenkins实现持续集成接口测试,一文精通(一)

前言 Jmeter,Postman一些基本大家相比都懂。那么真实在项目中去使用,又是如何使用的呢?本文将一文详解jmeter接口测试 一、接口测试分类 二、目前接口架构设计 三、市面上的接口测试工具 四、Jmeter简介,安装,环境…

计算机网络—OSPF单区域配置

目录 目录 1.实验环境准备 2.配置 OSPF 3.验证 OSPF 配置 4.修改 OSPF hello 和 dead 时间参数 5.OSPF缺省路由发布及验证 6.控制 OSPF DR/BDR 的选举 7.配置文件 拓扑图&#xff1a; 1.实验环境准备 基本配置以及IP编址。 <Huawei>system-view Enter system vi…

YOLOv8改进 | 注意力篇 | 利用YOLO-Face提出的SEAM注意力机制优化物体遮挡检测(附代码 + 修改教程)

一、本文介绍 本文给大家带来的改进机制是由YOLO-Face提出能够改善物体遮挡检测的注意力机制SEAM&#xff0c;SEAM&#xff08;Spatially Enhanced Attention Module&#xff09;注意力网络模块旨在补偿被遮挡面部的响应损失&#xff0c;通过增强未遮挡面部的响应来实现这一目…

【JAVA】CSS定位与CSS3属性、渐变、CSS3字体、2D变换

1 定位 1.1 相对定位 相对定位没有脱离文档流 定位元素的显示层级比普通元素高 定位元素可以通过margin&#xff0c;float调整位置&#xff0c;但不推荐 包含块&#xff1a;父元素 left和right同时写&#xff0c;右失效 上下同时写&#xff0c;下失效 <head><s…

从零学习Linux操作系统 第三十四部分 Ansible中的执行流控制

一、ansible中的迭代循环 循环迭代任务# 1、简单循环# loop: ##赋值列表 – value1 – value2 – … {{item}} 迭代变量名称 2、循环散列或字典列表 二、Ansible中的条件语句 when: 条件1条件2 条件判断 ‘’value “字符串”,value 数字‘<’value < 数字‘>…

【基础计算机网络2】物理层——通信基础

【前言回顾】 【考纲内容】 一、物理层的基本概念 1.1 物理层的主要任务 物理层解决如何在连接各种计算机的传输媒体上传输数据比特流&#xff0c;而不是指具体的传输媒介。物理层的主要任务&#xff1a;确定与传输媒体接口有关的一些特性。 1.2 物理层的一些特性 机械特性…

C++变参模板

从c11开始&#xff0c;模板可以接受一组数量可变的参数&#xff0c;这种技术称为变参模板。 变参模板 下面一个例子&#xff0c;通过变参模板打印一组数量和类型都不确定的参数。 #include <iostream> #include <string>void print(void) {std::cout<<&quo…

【最新版】ChatGPT/GPT4科研应用与AI绘图论文写作(最新增加Claude3、Gemini、Sora、GPTs技术及AI领域中的集中大模型的最新技术)

2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

关于playbook中when条件过滤报The conditional check ‘result|failed‘ failed的问题

问题现象 在使用plabook中的when做过滤脚本如下&#xff1a; --- - hosts: realserversremote_user: roottasks:- name: Check if httpd service is runningcommand: systemctl status httpdregister: resultignore_errors: True- name: Handle failed service checkdebug:ms…

docker常用操作-docker私有仓库的搭建(Harbor),并将本地镜像推送至远程仓库中。

1、docker-compose安装&#xff0c;下载docker-compose的最新版本 第一步&#xff1a;创建docker-compose空白存放文件vi /usr/local/bin/docker-compose 第二步&#xff1a;使用curl命令在线下载&#xff0c;并制定写入路径 curl -L "https://github.com/docker/compos…

基于Spring Boot + Vue的电影购票系统

基于Spring Boot Vue的电影购票系统 功能介绍 分为用户端和商家端&#xff0c;商家端只能让拥有商家角色的人登录 商家可以在系统上面注册自己家的影院信息选择影院进去管理&#xff0c;在选择完要进行操作的影院后&#xff0c;可以在系统的电影库选择电影为当前的影院进行电…

Docker容器Docker桌面配置镜像加速

打开Docker Desktop应用程序&#xff0c;点击设置 具体配置如下&#xff1a; {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"features": {"buil…

VScode(Python)使用ssh远程开发(Linux系统树莓派)时,配置falke8和yapf总结避坑!最详细,一步到位!

写在前面&#xff1a;在Windows系统下使用VScode时可以很舒服的使用flake8和yapf&#xff0c;但是在ssh远程开发树莓派时&#xff0c;我却用不了&#xff0c;总是出现问题。当时我就开始了漫长的探索求知之路。中间也请教过许多大佬&#xff0c;但是他们就讲“能用不就行了&…

Windows10/11配置WSL(Ubuntu)环境

文章目录 WSL介绍WSL部署扩展&#xff1a;辅助工具Windosw Terminal安装下载 WSL介绍 传统方式获取Linux操作系统&#xff0c;是安装完整的虚拟机及镜像环境&#xff0c;例如虚拟机VMware 而使用WSL,可以以非常轻量化的方式&#xff0c;得到Linux系统环境 它无需单独虚拟一套硬…

PaddlePaddle----基于paddlehub的OCR识别

Paddlehub介绍 PaddleHub是一个基于PaddlePaddle深度学习框架开发的预训练模型库和工具集&#xff0c;提供了丰富的功能和模型&#xff0c;包括但不限于以下几种&#xff1a; 1.文本相关功能&#xff1a;包括文本分类、情感分析、文本生成、文本相似度计算等预训练模型和工具。…

计算机设计大赛 行人重识别(person reid) - 机器视觉 深度学习 opencv python

文章目录 0 前言1 技术背景2 技术介绍3 重识别技术实现3.1 数据集3.2 Person REID3.2.1 算法原理3.2.2 算法流程图 4 实现效果5 部分代码6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习行人重识别(person reid)系统 该项目…