赞
踩
linux上进行docker安装有两种方式:
可以根据该文章的步骤进行安装:https://blog.csdn.net/weixin_44876263/article/details/136714078?spm=1001.2014.3001.5502
docker pull jenkins/jenkins:lts-alpine-jdk17
#!/bin/bash # 设置变量 PORT=8081 PROJECT\_DIR="/opt/cx/docker/jenkins" # 创建目录结构 mkdir -p "$PROJECT\_DIR/jenkins\_home" mkdir -p "$PROJECT\_DIR/logs" # 运行 Jenkins 容器 docker run -d \ --restart=always \ --privileged=true \ --name jenkins \ -u root \ -p "$PORT:8080" \ -v "$PROJECT\_DIR/jenkins\_home:/var/jenkins\_home" \ -v "$PROJECT\_DIR/logs:/var/log/jenkins" \ -v "/etc/localtime:/etc/localtime" \ jenkins/jenkins:lts-alpine-jdk17
jdk:jenkins docker 一般会自带jdk版本(自带的最方便)
mavan:将maven的压缩包解压到相应位置
node:
注意: apk add --no-cache nodejs 这一步是必须的 否则构建前端可能会出现env: ‘node’: No such
file or directory的错误
在jenkins_home中加入私钥文件(用于远程访问其他服务器等)
注意:首次访问远程服务器时,需要在jenkins的docker容器内 输入命令ssh xxx.xxx.xxx.xxx 访问其他服务器
授权成功后,jenkins才能无阻碍的访问其他服务器,否则jenkins执行脚本会访问失败
被访问的服务器需要填入公钥
注意:若jenkins是docker运行,若id_rsa文件(ssh私钥)不存在需要将id_rsa文件生成在容器内的jenkins_home目录下,才会生效
在SSH Server中加入需要远程连接的服务器,填写完成后,可以点击Test Configuration 查看是否成功
注意:远程连接的服务器需要在该服务器的/root/.ssh/authorized_keys文件中加入公钥
1. Maven 配置
2. JDK 安装
3. git安装
4. Maven安装
5. NodeJs安装
1. 编写脚本
pipeline { agent any environment { // 定义远程服务器信息 remoteServer = 'root@xxx.xxx.xxx.xxx' // 定义远程目标目录路径 remoteDirectory = '/data/project' // 定义本地文件路径 localFile = '/var/jenkins\_home/workspace/xxxxxxx' //一般为该脚本的工作空间地址 } stages { stage('拉取代码') { steps { // 使用Git插件拉取代码 checkout([ $class: 'GitSCM', branches: [[name: 'test']], doGenerateSubmoduleConfigurations: false, extensions: [], userRemoteConfigs: [[ credentialsId: '8b6ff462-7abb-462a-a438-af1457d4509d', //流水线语法生成的git凭证 url: 'http://192.168.1.1/cd/xxxxx.git' //git/gitlab的项目地址 ]] ]) } } stage('构建静态资源') { steps { // 在指定目录下进行构建 dir('${localFile}/pc-eva-sys') { //docker中拉取的前端相关文件的路径 nodejs('node20') { // 安装npm依赖 sh 'npm install' // 运行构建命令 sh 'npm run build:dev' // 压缩构建产物 sh 'tar -zcf ./dist/dist.tar.gz ./dist/\*' } } } } stage('部署静态资源') { steps { script { // 发送静态资源压缩包到远程服务器 sh "scp $localFile/pc-stu-eva-sys/dist/dist.tar.gz $remoteServer:$remoteDirectory/" // 在远程服务器上解压缩静态资源 sh "ssh $remoteServer 'sudo tar -zxf $remoteDirectory/dist.tar.gz -C $remoteDirectory'" // 删除远程服务器上的压缩包 sh "ssh $remoteServer 'rm -rf $remoteDirectory/dist.tar.gz'" } } } stage('清理工作区') { steps { script { // 清理工作区 deleteDir() } } } } }
2. 执行结果
1. 设置构建参数
2. 编写脚本
pipeline { agent any environment { // 远程服务器上的目标目录路径 remoteDirectory = '/data/xxx/deploy\_jar' // 要发送到远程服务器的本地文件路径 localFile = '/var/jenkins\_home/workspace/xxxxxx/xxxxx-0.0.1-SNAPSHOT.jar' // 远程jar包地址 remoteJarPath = "$remoteDirectory/xxxxx-0.0.1-SNAPSHOT.jar" // 指定的JDK工具 jdkTool = 'jdk17' // 指定的Maven工具 mavenTool = 'apache-maven-3.6.3' } stages { stage('拉取代码') { steps { checkout( [$class: 'GitSCM', branches: [[name: '${commit}']], doGenerateSubmoduleConfigurations: false, extensions: [], // Git仓库的URL和凭证 userRemoteConfigs: [[credentialsId: 'xxxxxxxxxxxxxxxxxx', url: 'xxxxxxxxxxxxxxxxxxxxx']]] ) } } stage('maven编译') { tools { // 使用指定的JDK和Maven工具 jdk jdkTool maven mavenTool } steps { // 使用Maven编译项目 sh "mvn -f stu-system/pom.xml clean -P product package" } }  最全的Linux教程,Linux从入门到精通 ====================== 1. **linux从入门到精通(第2版)** 2. **Linux系统移植** 3. **Linux驱动开发入门与实战** 4. **LINUX 系统移植 第2版** 5. **Linux开源网络全栈详解 从DPDK到OpenFlow**  第一份《Linux从入门到精通》466页 ==================== 内容简介 ==== 本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。  **本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。** > 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论 **网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。** **[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)** **一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。