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. 大模型背后的向量魔法:Embedding技术初探

    本文原本是2022年写的,然而一直没有完善,自从LLM火起来之后,NLP领域的技术更新很快,本文只是大概介绍了Embedding相关的基础知识,具体应用接下来会在博客更新发布. 前言 又是很长一段时间 ...

  2. 四柱汉诺塔的 Frame-Stewart 算法及其最优性

    注:本文基本上是对参考文献 \(1\) 的翻译.这份论文是法语的,并且我没找到英语版本或中文介绍( 大家应该很熟悉汉诺塔了把,,,这里就不解释三柱汉诺塔了. Frame-Stewart 算法 对于有 ...

  3. Map模糊搜索key

    一.代码 public class StringTest { public static void main(String[] args) { Map<String, Object>map ...

  4. msfconsole攻击指令

    Post后渗透模块 sysinfo #查看目标主机系统信息 run scraper #查看目标主机详细信息 run hashdump #导出密码的哈希 load kiwi #加载 ps #查看目标主机 ...

  5. 百万架构师第四十二课:Nginx:Nginx 的初步认识|JavaGuide

    百万架构师系列文章阅读体验感更佳 原文链接:https://javaguide.net 公众号:不止极客 Nginx 的初步认识及配置 课程目标 Nginx 在分布式架构中的应用分析 常用的 Web ...

  6. mysql 查看进程 删除单个、 多个进程语句

    查看所有的进程: show processlist 删除1个进程:  kill id 生成多个进程语句: select concat('KILL ',id,';') from information_ ...

  7. QT5笔记:34. 视口和窗口

    ![image-20220504160327597](QT5 使用.assets/image-20220504160327597.png) 例子: void Widget::paintEvent(QP ...

  8. Python异步编程进阶指南:破解高并发系统的七重封印

    title: Python异步编程进阶指南:破解高并发系统的七重封印 date: 2025/2/25 updated: 2025/2/25 author: cmdragon excerpt: 本文是异 ...

  9. DOS使用技巧整理 [典型案例分享]

    最早于2008年系统地学习MS-Dos,当时刚初中毕业.从小深受父亲影响,对电脑的技术比较感兴趣,特别是对DOS.随着学习得不断深入,接触了大量数字媒体软件.框架还有编程界的知识,发现DOS有不可磨灭 ...

  10. OERV兴趣探索:模拟器移植

      最近看了很多开源项目,主要都集中在模拟器方面,我指的是游戏模拟器比如GameBoy或者PlayStation这一类.现在想玩这系列的游戏可以在手机或者电脑下载相应的模拟器,并且获取对应的ROM文件 ...