容器化部署gitlab、jenkins,jenkins应用示例
一、容器化部署docker和docker conpose安装
Docker&Docker-compose的安装及部署_docker 20 使用什么版本docker-compose-CSDN博客
1.docker 安装脚本
cat >01_docker.sh<<EOF
#!/bin/bash
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engineyum install -y yum-utils device-mapper-persistent-data lvm2
yum install -y gcc gcc-c++
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install docker-ce docker-ce-cli containerd.io
systemctl enable --now docker
ps -ef | grep docker
<<EOF
chmod +x 01_docker.sh
./01_docker.sh
2.docker compose安装脚本
cat >02_docker-compose.sh<<EOF
#!/bin/bash
curl -L "https://get.daocloud.io/docker/compose/releases/download/v2.2.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod -R 777 /usr/local/bin/docker-compose
docker compose version
EOF
chmod +x 02_docker-compose.sh
./02_docker-compose.sh
二、gitlab容器化部署安装
注意:http://192.168.88.120:8929 ,更改文件里面ip,即自己服务器的IP,ip addr 查看即可
vim 03_gitlab-ce.sh
#!/bin/bash
mkdir -p /usr/local/docker/gitlab_docker
cd /usr/local/docker/gitlab_docker
#docker search gitlab
docker images | grep gitlab-ce
[ $? -eq 0 ] && echo 'gitlab-ce镜像已下载' || docker pull gitlab/gitlab-ce
cat >/usr/local/docker/gitlab_docker/docker-compose.yaml<<EOF
version: '3.1'
services:gitlab:image: "gitlab/gitlab-ce:latest"container_name: gitlabrestart: alwaysenvironment:GITLAB_OMNIBUS_CONFIG: | external_url 'http://192.168.88.120:8929'gitlab_rails['gitlab_shell_port'] = 2224ports:- '8929:8929'- '2224:2224'volumes:- './config:/etc/gitlab'- './logs:/var/log/gitlab'- './data:/var/opt/gitlab'
EOF
docker compose -f docker-compose.yaml up -d
# 浏览器查,用户名root,密码见下文,耐心等待http://192.168.88.120:8929/
#初始化密码文件
#cat config/initial_root_password
chmod +x 03_gitlab-ce.sh
./03_gitlab-ce.sh
三、jenkins安装
vim 04-docker_jenkins.sh
#!bin/bash
docker images | grep jenkins:2.387.1
#[ $? -eq 0 ] || docker pull jenkins/jenkins:2.319.1-lts
[ $? -eq 0 ] || docker pull jenkins/jenkins:2.387.1-lts
mkdir -p /usr/local/docker/jenkins_docker
cd /usr/local/docker/jenkins_docker
cat >/usr/local/docker/jenkins_docker/docker-compose.yaml<<EOF
version: '3.1'
services:jenkins:image: "jenkins/jenkins:2.387.1-lts"container_name: jenkinsrestart: alwaysports:- '8080:8080'- '50000:50000'volumes:- './data:/var/jenkins_home/'
EOF
rm -rf ./data/
docker compose -f docker-compose.yaml up -d
chmod -R 777 ./data
docker compose restart jenkins
#cat data/secrets/initialAdminPassword
chmod +x 04-docker_jenkins.sh
./04-docker_jenkins.sh
四、jdk,maven安装
jdk和maven安装部署到jenkins所在服务器
1、jdk1.8部署
#!/bin/bash
tar -xf jdk-8u161-linux-x64.tar.gz
rm -rf /usr/local/jdk1.8
mv jdk1.8.0_161 /usr/local/jdk1.8
sed -i '$aexport JAVA_HOME=/usr/local/jdk1.8' /etc/profile
sed -i '$aexport CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar' /etc/profile
sed -i '$aexport PATH=$JAVA_HOME/bin:$PATH' /etc/profile
. /etc/profile
1、maven部署
#!/bin/bash
tar -xf apache-maven-3.9.6-bin.tar.gz
rm -rf /usr/local/maven
mv apache-maven-3.9.6 /usr/local/mavensed -i '$aexport MAVEN_HOME=/usr/local/maven' /etc/profile
sed -i '$aexport PATH=${MAVEN_HOME}/bin:$PATH' /etc/profile
. /etc/profile
#配置maven仓库地址
sed -i '161,165d' /usr/local/maven/conf/settings.xml
sed -i '160a\ <id>nexus-alimaven</id> ' /usr/local/maven/conf/settings.xml
sed -i '161a\ <mirrorOf>repositoryId</mirrorOf> ' /usr/local/maven/conf/settings.xml
sed -i '162a\ <name>Human Readable for this Mirror</name> ' /usr/local/maven/conf/settings.xml
sed -i '163a\ <url>http://maven.aliyun.com/nexus/content/groups/public/</url> ' /usr/local/maven/conf/settings.xml
#配置jdk8 插件sed -i '189a <profile>\n <id>jdk8</id>\n <activation>\n <activeByDefault>true</activeByDefault>\n <jdk>1.8</jdk>\n
</activation>\n
<properties>\n
<maven.compiler.source>1.8</maven.compiler.source>\n <maven.compiler.target>1.8</maven.compiler.target>\n <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>\n</properties>\n
</profile> ' /usr/local/maven/conf/settings.xmlsed -i '275a <activeProfiles>\n<activeProfile>jdk8</activeProfile>\n</activeProfiles>' /usr/local/maven/conf/settings.xml
5、Jenkins应用
将jdk和maven移动到Jenkins目录下
mv /usr/local/jdk1.8 /usr/local/docker/jenkins_docker/data/
mv /usr/local/maven /usr/local/docker/jenkins_docker/data/
1.jenkins安装必要的插件
2.配置全局变量jdk和maven
3.配置系统管理远程服务器
4.新建项目
注意:docker目录内容
Dockerfile文件内容:提前在目标主机下载好镜像docker pull daocloud.io/library/java:8u40-jdk
FROM daocloud.io/library/java:8u40-jdk
COPY demo5-0.0.1-SNAPSHOT.jar /usr/local/
WORKDIR /usr/local/
CMD java -jar demo5-0.0.1-SNAPSHOT.jar
docker-compose-yaml文件内容
version: '3.1'
services:mytest:build:context: ./dockerfile: Dockerfileimage: mytest:v1.0.0container_name: mytest2ports:- 8081:8080
在目标主机执行的shell命令
cd /usr/local/test/docker/ #在目标主机执行的目录
mv ../target/demo5-0.0.1-SNAPSHOT.jar ./ #将打包的jar包放入docker 目录
docker compose down #关闭之前打开的容器
docker compose up -d --build #重新创建容器
docker images prune -f #删除名称为none的镜像
相关文章:

容器化部署gitlab、jenkins,jenkins应用示例
一、容器化部署docker和docker conpose安装 Docker&Docker-compose的安装及部署_docker 20 使用什么版本docker-compose-CSDN博客 1.docker 安装脚本 cat >01_docker.sh<<EOF #!/bin/bash yum remove docker \docker-client \docker-client-latest \docker-co…...

基于STM32的轻量级Web服务器设计
文章目录 一、前言1.1 开发背景1.2 实现的功能1.3 硬件模块组成1.4 ENC28J60网卡介绍1.5 UIP协议栈【1】目标与特点【2】核心组件【3】应用与优势 1.6 添加UIP协议栈实现创建WEB服务器步骤1.7 ENC28J60添加UIP协议栈实现创建WEB客户端1.8 ENC28J60移植UIP协议并编写服务器测试示…...
用r语言处理 Excel数据当中的缺失值方法
以下是使用 R 编程语言处理 Excel 缺失数据的一些常见方法示例代码:(无需循环) 读取包含缺失数据的 Excel 文件 data <- read.csv(“your_file.csv”) 查看数据中是否有缺失值 sum(is.na(data)) 用平均值填充缺失值 data c o l u m …...

AWS 高防和阿里云高防深度对比
随着网络攻击的不断增加,企业对于网络安全的需求也越来越高。在这种情况下,高防护服务成为了企业网络安全的重要组成部分。AWS和阿里云作为全球领先的云计算服务提供商,都提供了高防护服务,但它们之间存在着一些差异。我们九河云一…...

ctfshow web 月饼杯II
web签到 <?php //Author:H3h3QAQ include "flag.php"; highlight_file(__FILE__); error_reporting(0); if (isset($_GET["YBB"])) {if (hash("md5", $_GET["YBB"]) $_GET["YBB"]) {echo "小伙子不错嘛ÿ…...
「前端+鸿蒙」核心技术HTML5+CSS3(二)
1、开发者文档 开发者文档通常由浏览器厂商或技术社区提供,包含有关Web技术(如HTML、CSS、JavaScript)的详细信息,API文档,以及最佳实践。例如,MDN Web Docs是一个广泛认可的开发者资源。 2、块级元素与行列元素 块级元素:在页面上占据整行的元素,如<div>、<…...

unity接入live2d
在bilibili上找到一个教程,首先注意一点,你直接导入那个sdk,并且打开示例,显示的模型是有问题的,你需要调整模型上脚本的一个枚举值,调整它的渲染顺序是front z to我看教程时候,很多老师都没有提…...
练习题-17
以下题目来自2024年5月清华大学“丘成桐数学科学领军计划数学水平考试”。第11题本人参考了网友Fiddie (数学兔的极大理想)的解答,原网址是 https://mp.weixin.qq.com/s/q9slRWL4iO_TcSdkmbfbbw. 第10题:在10维列向量构成的内积空间 V V V中…...

乐高小人分类项目
数据来源 LEGO Minifigures | Kaggle 建立文件目录 BASE_DIR lego/star-wars-images/ names [YODA, LUKE SKYWALKER, R2-D2, MACE WINDU, GENERAL GRIEVOUS ] tf.random.set_seed(1)# Read information about dataset if not os.path.isdir(BASE_DIR train/):for name in …...
个人关于ChatGPT的用法及建议
概述 这里只是个人常用的几个软件,做一下汇总,希望对各位有用。 如果有更高认知的朋友,请留下你的工具名称,提醒我一下,谢谢~ 常用的chatgpt模型工具: 以下是一些知名的例子: 文…...

神经网络的工程基础(二)——随机梯度下降法|文末送书
相关说明 这篇文章的大部分内容参考自我的新书《解构大语言模型:从线性回归到通用人工智能》,欢迎有兴趣的读者多多支持。 本文涉及到的代码链接如下:regression2chatgpt/ch06_optimizer/stochastic_gradient_descent.ipynb 本文将讨论利用…...
常见的几种编码方式
常见的编码方式及其特点: 编码方式的设计是为了适应不同的字符集和应用需求,因此它们在表示字符时使用的位数和字节数各不相同 常见编码方式及其位数和字节数 ASCII(American Standard Code for Information Interchange)&#x…...

ubuntu移动硬盘重命名
因为在ubuntu上移动硬盘的名字是中文的,所以想要改成英文的。 我的方法: 将移动硬盘插到windows上,直接右键重命名。再插到ubuntu上名字就改变了。 别人的方法: ubuntu下如何修改U盘名字-腾讯云开发者社区-腾讯云 在自带的软件…...
VUE框架前置知识总结
一、前言 在学习vue框架中,总是有些知识不是很熟悉,又不想系统的学习JS,因为学习成本太大了,所以用到什么知识就学习什么知识。此文档就用于记录零散的知识点。主要是还是针对与ES6规范的JS知识点。 以下实验环境都是在windows环…...

张宇1000题80%不会?别急,这个方法肯定有用!
这太正常了,1000题的难度本来就高,不要慌 我考研的时候跟的也是张宇老师,但是1000题我根本就没做几道题就给换成880题660题了,而且只是强化阶段用880题,基础阶段我用的都是汤家凤的1800题。 不要担心做的不是张宇老师…...

【python】爬虫记录每小时金价
数据来源: https://www.cngold.org/img_date/ 因为这个网站是数据随时变动的,用requests、BeautifulSoup的方式解析html的话,数据的位置显示的是“--”,并不能取到数据。 所以采用webdriver访问网站,然后从界面上获取…...

一行命令将已克隆的本地Git仓库推送到内网服务器
一、需求背景 我们公司用gitea搭建了一个git服务器,其中支持win7的最高版本是v1.20.6。 我们公司的电脑在任何时候都不能连接外网,但是希望将一些开源的仓库移植到内网的服务器来。一是有相关代码使用的需求,二是可以建设一个内网能够查阅的…...

Linux文本处理三剑客(详解)
一、文本三剑客是什么? 1. 对于接触过Linux操作系统的人来说,应该都听过说Linux中的文本三剑客吧,即awk、grep、sed,也是必须要掌握的Linux命令之一,三者都是用来处理文本的,但侧重点各不相同,a…...

AI在线UI代码生成,不需要敲一行代码,聊聊天,上传图片,就能生成前端页面的开发神器
ioDraw的在线UI代码生成器是一款开发神器,它可以让您在无需编写一行代码的情况下创建前端页面。 主要优势: 1、极简操作:只需聊天或上传图片,即可生成响应式的Tailwind CSS代码。 2、节省时间:自动生成代码可以节省大…...
go-zero整合单机版ClickHouse并实现增删改查
go-zero整合单机版ClickHouse并实现增删改查 本教程基于go-zero微服务入门教程,项目工程结构同上一个教程。 本教程主要实现go-zero框架整合单机版ClickHouse,并暴露接口实现对ClickHouse数据的增删改查。 go-zero微服务入门教程:https://b…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
React 实战项目:微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇!在前 29 篇文章中,我们从 React 的基础概念逐步深入到高级技巧,涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...
ArcPy扩展模块的使用(3)
管理工程项目 arcpy.mp模块允许用户管理布局、地图、报表、文件夹连接、视图等工程项目。例如,可以更新、修复或替换图层数据源,修改图层的符号系统,甚至自动在线执行共享要托管在组织中的工程项。 以下代码展示了如何更新图层的数据源&…...

数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)
目录 🔍 若用递归计算每一项,会发生什么? Horners Rule(霍纳法则) 第一步:我们从最原始的泰勒公式出发 第二步:从形式上重新观察展开式 🌟 第三步:引出霍纳法则&…...
CppCon 2015 学习:Reactive Stream Processing in Industrial IoT using DDS and Rx
“Reactive Stream Processing in Industrial IoT using DDS and Rx” 是指在工业物联网(IIoT)场景中,结合 DDS(Data Distribution Service) 和 Rx(Reactive Extensions) 技术,实现 …...