docker启动的jenkins拉取gitee项目构建并部署

news2024/11/25 13:31:41

docker启动的jenkins拉取gitee项目构建并部署

docker 拉取jenkins

  1. https://hub.docker.com/r可以search不同的jenkins版本
  2. docker pull jenkins/jenkins
  3. 创建挂载目录 /home/jenkins_home
  4. 加权限chmod 777 /home/jenkins_home
  5. docker run -di --name=jenkins -p 9999:8080 -v /home/jenkins_home:/var/jenkins_home jenkins/jenkins:latest
    参数解读
-p 9999:8080 是端口映射,宿主机的端口映射到容器的端口,格式为 -p [宿主机]:[容器]
–name 给容器起一个别名
-d 是容器后台运行
-i 开始交互式会话
-t 模拟一个终端
-v /home/jenkins_home:/var/jenkins_home 将宿主机的/home/jenkins_home目录挂载到 /var/jenkins_home。这样做是为了把Jenkins文件存放到宿主机上,就算容器被删除了,新建一个新的容器内容也不会丢失。
-v /etc/localtime:/etc/localtime 意义:让容器使用和服务器同样的时间设置。

7.打开浏览器访问jenkins localhost:9999
在这里插入图片描述
7. 可直接访问宿主机的目录查看密码/home/jenkins_home/secrets/initialAdminPassword

配置容器jdk和maven

  1. 安装jdk
    使用docker cp命令将宿主机的jdk文件夹复制到容器中
docker cp /workspace/java/jdk1.8.0_231 jenkins:/jdk8 

在这里插入图片描述2. 安装Maven
Dashboard->系统管理->全局工具配置滑到底部的Maven安装
在这里插入图片描述

安装插件

1.安装publish over sshMaven Integration,没有中文界面的还可以安装中文插件Localization: Chinese (Simplified)

配置SSH

  1. Publish over SSH
    在这里插入图片描述
    点击新增设置远程服务器配置
    在这里插入图片描述
    然后点击高级,配置远程服务器密码
    在这里插入图片描述

新建任务

  1. 创建任务
    在dashboard点击新建任务,填写名字,选择maven项目
  2. 项目配置里的 源码管理
    1.选择git
    2.填入代码仓库地址,没有凭证的话点击添加在这里插入图片描述
  3. Build设置编译参数
    在这里插入图片描述
  4. 构建后操作
    点击增加构建后操作,选择Send build artifacts over SSH
    在这里插入图片描述
    在这里插入图片描述
    jenkins中项目构建时控制台输出构建的地址是
Building in workspace /var/jenkins_home/workspace/AutoDeploy

而查看部署jenkins的服务起中,构建对应项目后,生成的target包的目录是:

/var/jenkins_home/workspace/AutoDeploy/member-api/target

所以 Source files(表示传输时匹配什么文件)应该填

member-api/target/member-api-1.0-SNAPSHOT.jar

Remove prefix ( 该操作是针对上面的source files目录)应该填

member-api/target/

Remote directory (该操作是基于设定的服务器目录进行)。这里我的服务器配置是/. 因此这里应该写

workspace/deploy/java/RemoteDeploy

Exec command

/workspace/deploy/java/RemoteDeploy/start.sh

start.sh

#!/bin/bash
source ~/.bash_profile
source /etc/profile

echo "------start---------"
pid=$(ps -ef | grep -i member-api-1.0-SNAPSHOT.jar | grep -v "grep" | awk '{print $2}')
echo "获取pid成功"+$pid
if [ -n "$pid" ]; then
        kill -9 $pid
        echo '解除端口占用'
fi

sleep 3s
echo "启动......"
export BUILD_ID=dontKillMe
nohup java -jar /home/jenkins_home/workspace/AutoDeploy/member-api/target/member-api-1.0-SNAPSHOT.jar &
echo "脚本执行完毕"

sleep 2s
pid=`ps -ef|grep member-api-1.0-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
  then
        echo "部署后的pid进程 :$pid"
                echo "启动成功"
else
    echo "进程没有启动"
fi


在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【json-server】centos线上环境搭建全攻略

▒ 目录 ▒ 🛫 问题描述环境 1️⃣ 安装json-server安装nvm安装node安装json-server 2️⃣ json-server 使用创建json数据踩坑:指定host关闭防火墙云后台修改安全组规则最终命令行 🛬 结论📖 参考资料 🛫 问题 描述 开…

【虚拟机搭建-VMware设置固定IP】VMWare中CentOS如何设置固定IP【不成功手把手教学】

背景 在日常工作学习中(比如博主在之前学习k8s过程中,windows本地搭建虚拟机,重启windows后)虚拟机的IP会发生变化,所以该篇文章详细记录VMWare中CentOS如何设置固定IP 虚拟机安装 参考: https://rundr…

尚硅谷Docker2022版学习笔记(基础篇 上)

目录 一、Docker简介 1.1、是什么? 问题:为什么会有Docker出现? Docker理念 一句话 1.2、容器与虚拟机比较 传统虚拟机技术 容器虚拟机技术 容器虚拟机技术 1.3、去哪下? 二、Docker安装 2.1、前提说明 2.2、Docker的…

Rust语言从入门到入坑——(8)Rust泛型与特性

文章目录 0、引入1、泛型1.1、在函数中使用1.2、在结构体中使用 2、特性2.1 默认特性2.2 特性做参数2.3 特性做返回值2.4 有条件实现方法 3、总结 0、引入 泛型是一个编程语言不可或缺的机制。 C 语言中用"模板"来实现泛型,而 C 语言中没有泛型的机制&am…

MySQL数据库——备份与恢复

MySQL数据库——备份与恢复 一、数据备份的重要性二 、数据库备份的分类和备份策略1 数据库备份的分类2 数据库的备份策略3常见的备份方法 三、MySQL完全备份1 什么是完全备份2 完全备份的优缺点3 完全备份的方法 四、完全备份的操作1.物理冷备份与恢复2.mysqldump 备份与恢复3…

Arduino IDE 2.1.0 下安装ESP32

很久没玩Arduino了。新装了一台电脑,想重新捡起ESP32-WROOM-32开发板玩玩。官网上下了Arduino IDE 2.1.0,然后配置ESP32开发环境。 下载及安装Arduino IDE略过不谈。装完后还是老规矩,文件 -> 首选项,先把自定义板管理地址填入…

如何与西门子200 PLC建立连接

更多关于西门子S7-200PLC内容请查看:西门子200系列PLC学习课程大纲 与西门子200 PLC建立连接很简单,分为以下几步: 1.给S7-200PLC通电 按下图1-1所示连接PLC端口,然后给PLC供电,有直流24V和交流220V两种供电方式&am…

力扣----环形链表

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 金句分享:…

9i物联网浏览器(cef_114.2.110114.2.100支持H264视频)WinForm-CefSharp114(5735)视频版本体验

更新:2023.6.25 版本:Cef_114.2.110和114.2.100+chromium-114.0.5735.134的32位和64位 说明:支持图片,mp3,mp4(H264)多媒体 测试环境:windows server 2019 测试网址:www.html5test.com 1.包下载地址 1.1 https://www.nuget.org/packages/CefSharp.Common/ 1.2 https…

SpringCloud Alibaba学习笔记

SpringCloud Alibaba学习笔记 1、项目搭建 版本依赖关系&#xff1a;https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E 1.1、搭建父工程 spring-initializr构建项目 清理父工程中不必要的文件/文件夹 修改pom.xml文件 <…

Linux进程信号【信号产生】

✨个人主页&#xff1a; 北 海 &#x1f389;所属专栏&#xff1a; Linux学习之旅 &#x1f383;操作环境&#xff1a; CentOS 7.6 阿里云远程服务器 文章目录 &#x1f307;前言&#x1f3d9;️正文1、进程信号基本概念1.1、什么是信号&#xff1f;1.2、信号的作用1.3、信号的…

十四、go语言的指针

一、指针 1.1 指针的概念 指针是存储另一个变量的内存地址的变量。 我们都知道&#xff0c;变量是一种使用方便的占位符&#xff0c;用于引用计算机内存地址。 一个指针变量可以指向任何一个值的内存地址它指向那个值的内存地址。 在上面的图中&#xff0c;变量b的值为156&…

怎么输入文字生成绘画图?分享一份文字生成绘画教程

你是否曾经幻想过&#xff0c;将文字化为绘画&#xff0c;将思维转化为图像&#xff0c;让你的想象力得到更好的释放与表达&#xff1f;现在&#xff0c;这一切都变得可能了&#xff01;通过一些绘画软件&#xff0c;你可以轻松生成各种风格的绘画图。只需要一个创意的想法和一…

Selenium教程__POM架构(17)

POM是Page Object Model的简称&#xff0c;它是一种设计思想&#xff0c;意思是&#xff0c;把每一个页面&#xff0c;当做一个对象&#xff0c;页面的元素和元素之间操作方法就是页面对象的属性和行为。 POM一般使用三层架构&#xff0c;分别为&#xff1a;基础封装层、页面对…

SkyWalking--traceId的作用

原文网址&#xff1a;SkyWalking--traceId的作用_IT利刃出鞘的博客-CSDN博客 简介 本文介绍SkyWalking中traceId的作用。 traceId是什么 SkyWalking的一个核心功能就是&#xff1a;链路追踪。链路追踪就是跟踪一个请求的所有链路&#xff0c;而这个链路都是通过一个id来串起…

数据结构--算法空间复杂度

数据结构–算法空间复杂度 只需关注存储空间大小与问题规模相关的变量 计算规则与算法的时间复杂度类似 eg&#xff1a; S ( n ) O ( n 2 ) O ( n ) O ( 1 ) O ( n 2 ) S(n) O(n^2)O(n)O(1) O(n^2) S(n)O(n2)O(n)O(1)O(n2) 知识点回顾 & 重要考点

java list集合数据去重方式

1.概述 最近又是一轮代码review , 发现了一些实现去重的代码&#xff0c;在使用 list.contain … 我沉思&#xff0c;是不是其实很多初学者也存在这种去重使用问题&#xff1f; 所以我选择把这个事情整出来&#xff0c;分享一下。 2.contain 去重 首先是造出一个 List 模拟…

[CKA]考试之七层负载均衡Ingress

由于最新的CKA考试改版&#xff0c;不允许存储书签&#xff0c;本博客致力怎么一步步从官网把答案找到&#xff0c;如何修改把题做对&#xff0c;下面开始我们的 CKA之旅 题目为&#xff1a; Task 如下创建一个新的nginx Ingress资源&#xff1a; 名称: pong Namespace: i…

掌握这些容易被忽略的Vue细节,轻松排查问题,省时省力!

v-bind 绑定的值是 null 或者 undefined v-bind 如果绑定的值是 null 或者 undefined&#xff0c;那么该 attribute 将会从渲染的元素上移除。 当attribute 为布尔型时&#xff0c; 行为略有不同。 <button :disabled"isButtonDisabled">Button</button&…

CSS之平面转换

简介 作用&#xff1a;为元素添加动态效果&#xff0c;一般与过渡配合使用 概念&#xff1a;改变盒子在平面内的形态&#xff08;位移、旋转、缩放、倾斜&#xff09; 平面转换也叫 2D 转换&#xff0c;属性是 transform 平移 transform: translate(X轴移动距离, Y轴移动距…