Jenkins 是一个开源的自动化服务器,主要用于实现 持续集成(CI) 和 持续交付/部署(CD),其核心作用在于通过自动化流程提升软件开发和交付的效率与质量

一、环境准备 1. 安装 Docker(如已安装可跳过)

sudo yum install -y docker
sudo systemctl enable docker
sudo systemctl start docker
//安装完成之后可以验证下是否成功
docker -v

二、创建 Jenkins 数据目录并设置权限

mkdir -p /data/jenkins_home 
chown -R 1000:1000 /data/jenkins_home
chmod -R 755 /data/jenkins_home

 

三、关闭 SELinux(银河麒麟系统限制)

 setenforce 0
# 永久关闭(可选)
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

四、启动 Jenkins 容器(推荐带 --privileged)

//安装
docker pull jenkins/jenkins:lts
//启动
docker run -d \ --name jenkins \ --network host \ --privileged \
-v /data/jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
--memory=4g \ jenkins/jenkins:lts

//查看docker 镜像状态
docker ps
//查看日志
docker logs -f jenkins

 

 

五、获取初始密码并访问Jenkins

 docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

  http://<你的服务器IP>:8080

六、Jenkins 初始配置建议

安装推荐插件 创建管理员账号 安装以下插件(用于 Git 和自动部署):

Git Pipeline SSH Agent Docker Pipeline Blue Ocean(可选)

完成之后设置密码,界面如下

七、配置自动化打包部署 Git 项目

示例:自动拉取 Git 仓库,构建并部署(基于 Pipeline) 新建任务 → 类型选择 “Pipeline” 在 “Pipeline 脚本” 中填入如下示例代码:

pipeline {
agent any

tools {
nodejs 'NodeJS 20.18.3'
}

environment {
DEPLOY_DIR = "/var/jenkins_home/testapp"
}

stages {
stage('拉取代码') {
steps {
git credentialsId: '6c4fe15c-278e-4d6a-bb93-327b5f605d7311',
url: 'https://gitee.com/test/test.git',
branch: 'master'
}
}

stage('安装依赖') {
steps {
sh '''
npx yarn
'''
}
}

stage('构建项目') {
steps {
sh 'npx yarn build'
}
}

stage('部署到服务器') {
steps {
sh '''
mkdir -p "$DEPLOY_DIR"
rm -rf "$DEPLOY_DIR"/*
cp -r "$WORKSPACE/dist/"* "$DEPLOY_DIR/"
'''
}
}

}

post {
always {
echo "构建+部署完成,请访问部署服务器的 5173 端口查看页面"
}
}
}

 

八、使用 SSH 发布部署(选配)

如果部署到远程服务器: 安装 SSH Agent 插件 在 Jenkins 中添加

“凭据(Credentials)” → SSH 密钥 在 pipeline 脚本中用 sshagent 块包裹部署逻辑

git 拉取凭据耶根据上面的方式一样获取进入系统管理

选择系统凭据创建

保存即可

这个对应

这个即可获得拉取相应项目权限

银河麒麟系统 jenkins docker 部署 自动化打包部署git 项目的更多相关文章

  1. 使用jenkins实现前端自动化打包部署(Linux版本)

    我们这边好多小组觉得每次测试人员叫我们开发打包部署到某某个测试环境人工操作比较麻烦,因为他们想做到只专注于开发,不管这些琐碎的事.于是有个组长问我前端能不能用Jenkins去执行这一个固定的流程,因为 ...

  2. 解放双手 | Jenkins + gitlab + maven 自动打包部署项目

    前言 记录 Jenkins + gitlab + maven 自动打包部署后端项目详细过程! 需求背景 不会偷懒的程序员不是好码农,传统的项目部署,有时候采用本地手动打包,再通过ssh传到服务器部署运 ...

  3. Jenkins+svn+ftp自动化发布asp.net项目

    今天将自己所掌握的(Jenkins+svn+ftp自动化发布asp.net项目)知识分享给大家,希望能帮组到大家: (1)先下载Jenkins并安装: (2)安装.Net所需要的插件: (3)配置插件 ...

  4. Jenkins实现Android自动化打包

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/77102359 本文出自[赵彦军的博客] 1.Tomcat 进入 https://t ...

  5. 使用Jenkins集成和自动化打包资料

    1.手把手教你利用Jenkins持续集成iOS项目 http://www.jianshu.com/p/41ecb06ae95f 2.Jenkins+ Xcode+ 蒲公英 实现IOS自动化打包和分发 ...

  6. Docker:银河麒麟系统/Ubuntu/arm64-离线安装Docker,配置自启

    下载离线包 离线安装包地址:https://download.docker.com/linux/debian/dists/stretch/pool/stable/ 注意: amd64是处理器64位 复 ...

  7. jenkins自动化打包部署

    请参考: http://m.blog.csdn.net/article/details?id=50518959 1.启动 jenkins.war ,打开首页  192.168.158.129:8080 ...

  8. 关于自动化打包部署Jenkins的使用和配置

    (未写完整,待续...) 名词解释: 1.Jenkins中对svn进行操作,可通过插件和脚本两种方式进行. 插件方式 在插件管理中安装"Subversion Plug-in",即可 ...

  9. Asp.net Core Jenkins Docker 实现一键化部署

    写在前面 在前段时间尝试过用Jenkins来进行asp.net core 程序在IIS上面的自动部署.大概的流程是Jenkins从git上获取代码 最开始Jenkins是放在Ubuntu的Docker ...

  10. docker + spring boot 打包 部署。

    docker 安装 什么的 就不一一介绍了 不会安装百度一找一堆. 我这直接上代码. 首先你要有个spring boot项目. 然后打包.打包很简单 我打包的是 jar文件.直接在pom.xml文件里 ...

随机推荐

  1. IDEA中使用Yapi上传接口

    一.Idea下载插件YapiUpload 二.修改该项目的隐藏文件夹idea .idea文件下修改misc.xml增加如下配置  <component name="yapi" ...

  2. .Net 6 配置日志

    前言   .Net 6 与之前的配置有点不一样了记录下日志配置方式. 当前日志以Serilog为例,.Net 6 的日志由内置的Logger获取,然后可以交给Serilog|NLog等框架处理, 框架 ...

  3. [BZOJ4833] 最小公倍佩尔数 题解

    在这篇题解中,我会将各个部分的证明分成不同的推导过程,以达到逐一击破的效果. 引理 1:\(f(n)=2f(n-1)+f(n-2)\) 我的证明挺繁琐的,过程如下: \[(1+\sqrt 2)^{n- ...

  4. 全面详解C语言使用cJSON解析JSON字符[转载]

    cJSON对象的实现采用了树形结构,每个对象是树的一个节点,每个节点由cJSON这个结构体组成,对象中的元素也由cJSON这个结构体组成.同一层的对象和元素是双向链表结构,由next和prev指针链接 ...

  5. MySQL - [20] 事务

    题记部分 一.什么是ACID (1)Atomicity 原子性 某个操作,要么全部执行完毕,要么全部回滚. (2)Consistency 一致性 数据库中的数据全都符合现实世界中的约束,则这些数据就符 ...

  6. HTTP - [01] 简介

    HTTP本身是不安全的,因为传输的数据未经加密,可能会被窃听或篡改.为了解决这个问题,引入了HTTPS,即在HTTP上加入SSL/TLS协议,为数据传输提供了加密和身份验证. 一.概述   HTTP( ...

  7. vmware workstation 17 pro激活密钥

    vmware workstation 17 pro激活密钥,通用批量永久激活许可 17:JU090-6039P-08409-8J0QH-2YR7F 16:ZF3R0-FHED2-M80TY-8QYGC ...

  8. Easyexcel(2-文件读取)

    同步读取 读取单个Sheet 通过sheet方法指定对应的Sheet名称或下标读取文件信息 通过doReadSync方法实现同步读取 @Data public class UserExcel { @E ...

  9. Qt 实现带阴影 无边框的QMessageBox

    Qt 实现带阴影的QMessagebox 在实际项目里面使用到了QMessageBox做一个弹窗,最开始是样式不是需要的样式,就去找了一下QMessageBox的样式表,一般来说可以使用findChi ...

  10. Netty基础—5.Netty的使用简介

    大纲 1.Netty服务端的启动流程 2.服务端IO事件的处理类 3.Netty客户端的启动流程 4.客户端IO事件的处理类 5.启动Netty服务端和客户端的方法说明 6.Netty服务端和客户端使 ...