当前位置: 首页 > news >正文

容器化部署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 缺失数据的一些常见方法示例代码&#xff1a;&#xff08;无需循环&#xff09; 读取包含缺失数据的 Excel 文件 data <- read.csv(“your_file.csv”) 查看数据中是否有缺失值 sum(is.na(data)) 用平均值填充缺失值 data c o l u m …...

AWS 高防和阿里云高防深度对比

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

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 "小伙子不错嘛&#xff…...

「前端+鸿蒙」核心技术HTML5+CSS3(二)

1、开发者文档 开发者文档通常由浏览器厂商或技术社区提供,包含有关Web技术(如HTML、CSS、JavaScript)的详细信息,API文档,以及最佳实践。例如,MDN Web Docs是一个广泛认可的开发者资源。 2、块级元素与行列元素 块级元素:在页面上占据整行的元素,如<div>、<…...

unity接入live2d

在bilibili上找到一个教程&#xff0c;首先注意一点&#xff0c;你直接导入那个sdk&#xff0c;并且打开示例&#xff0c;显示的模型是有问题的&#xff0c;你需要调整模型上脚本的一个枚举值&#xff0c;调整它的渲染顺序是front z to我看教程时候&#xff0c;很多老师都没有提…...

练习题-17

以下题目来自2024年5月清华大学“丘成桐数学科学领军计划数学水平考试”。第11题本人参考了网友Fiddie (数学兔的极大理想&#xff09;的解答&#xff0c;原网址是 https://mp.weixin.qq.com/s/q9slRWL4iO_TcSdkmbfbbw. 第10题&#xff1a;在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的用法及建议

概述 这里只是个人常用的几个软件&#xff0c;做一下汇总&#xff0c;希望对各位有用。 如果有更高认知的朋友&#xff0c;请留下你的工具名称&#xff0c;提醒我一下&#xff0c;谢谢&#xff5e; 常用的chatgpt模型工具&#xff1a; 以下是一些知名的例子&#xff1a; 文…...

神经网络的工程基础(二)——随机梯度下降法|文末送书

相关说明 这篇文章的大部分内容参考自我的新书《解构大语言模型&#xff1a;从线性回归到通用人工智能》&#xff0c;欢迎有兴趣的读者多多支持。 本文涉及到的代码链接如下&#xff1a;regression2chatgpt/ch06_optimizer/stochastic_gradient_descent.ipynb 本文将讨论利用…...

常见的几种编码方式

常见的编码方式及其特点&#xff1a; 编码方式的设计是为了适应不同的字符集和应用需求&#xff0c;因此它们在表示字符时使用的位数和字节数各不相同 常见编码方式及其位数和字节数 ASCII&#xff08;American Standard Code for Information Interchange&#xff09;&#x…...

ubuntu移动硬盘重命名

因为在ubuntu上移动硬盘的名字是中文的&#xff0c;所以想要改成英文的。 我的方法&#xff1a; 将移动硬盘插到windows上&#xff0c;直接右键重命名。再插到ubuntu上名字就改变了。 别人的方法&#xff1a; ubuntu下如何修改U盘名字-腾讯云开发者社区-腾讯云 在自带的软件…...

VUE框架前置知识总结

一、前言 在学习vue框架中&#xff0c;总是有些知识不是很熟悉&#xff0c;又不想系统的学习JS&#xff0c;因为学习成本太大了&#xff0c;所以用到什么知识就学习什么知识。此文档就用于记录零散的知识点。主要是还是针对与ES6规范的JS知识点。 以下实验环境都是在windows环…...

张宇1000题80%不会?别急,这个方法肯定有用!

这太正常了&#xff0c;1000题的难度本来就高&#xff0c;不要慌 我考研的时候跟的也是张宇老师&#xff0c;但是1000题我根本就没做几道题就给换成880题660题了&#xff0c;而且只是强化阶段用880题&#xff0c;基础阶段我用的都是汤家凤的1800题。 不要担心做的不是张宇老师…...

【python】爬虫记录每小时金价

数据来源&#xff1a; https://www.cngold.org/img_date/ 因为这个网站是数据随时变动的&#xff0c;用requests、BeautifulSoup的方式解析html的话&#xff0c;数据的位置显示的是“--”&#xff0c;并不能取到数据。 所以采用webdriver访问网站&#xff0c;然后从界面上获取…...

一行命令将已克隆的本地Git仓库推送到内网服务器

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

Linux文本处理三剑客(详解)

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

AI在线UI代码生成,不需要敲一行代码,聊聊天,上传图片,就能生成前端页面的开发神器

ioDraw的在线UI代码生成器是一款开发神器&#xff0c;它可以让您在无需编写一行代码的情况下创建前端页面。 主要优势&#xff1a; 1、极简操作&#xff1a;只需聊天或上传图片&#xff0c;即可生成响应式的Tailwind CSS代码。 2、节省时间&#xff1a;自动生成代码可以节省大…...

go-zero整合单机版ClickHouse并实现增删改查

go-zero整合单机版ClickHouse并实现增删改查 本教程基于go-zero微服务入门教程&#xff0c;项目工程结构同上一个教程。 本教程主要实现go-zero框架整合单机版ClickHouse&#xff0c;并暴露接口实现对ClickHouse数据的增删改查。 go-zero微服务入门教程&#xff1a;https://b…...

GroundingDINO SwinT与SwinB配置实战对比:零样本目标检测的架构选择策略

GroundingDINO SwinT与SwinB配置实战对比&#xff1a;零样本目标检测的架构选择策略 【免费下载链接】GroundingDINO [ECCV 2024] Official implementation of the paper "Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection"…...

CentOS 7服务器上,从零搞定NVIDIA驱动和CUDA 11.1的保姆级避坑指南

CentOS 7服务器NVIDIA驱动与CUDA 11.1实战避坑手册 接手一台老旧GPU服务器时&#xff0c;最令人头疼的莫过于搭建深度学习环境。那些看似简单的安装步骤背后&#xff0c;往往隐藏着无数个让新手崩溃的"坑"。本文将带你穿越雷区&#xff0c;用最稳妥的方式在CentOS 7上…...

告别本地跑模型:用恒源云+PyCharm专业版搭建你的第一个远程深度学习环境

告别本地跑模型&#xff1a;用恒源云PyCharm专业版搭建你的第一个远程深度学习环境 当你在本地笔记本上跑ResNet-18都卡得无法切换浏览器标签时&#xff0c;就该考虑把计算任务交给云端了。但真正阻碍开发者上云的往往不是技术门槛&#xff0c;而是开发体验的断层——谁都不想为…...

MPU6050中断驱动数据采集与采样率优化实战

1. MPU6050中断机制与嵌入式开发实战 刚接触MPU6050时&#xff0c;我最头疼的就是数据采集的实时性问题。用轮询方式读取传感器数据不仅占用CPU资源&#xff0c;还经常错过关键的运动状态变化。后来发现中断机制才是解决问题的钥匙&#xff0c;就像有个贴心助手会在数据准备好…...

NovelClaw:基于Python的异步小说采集框架设计与实战

1. 项目概述&#xff1a;一个面向小说爱好者的现代化数据采集工具 如果你是一个小说爱好者&#xff0c;或者像我一样&#xff0c;曾经为了追更某本网络小说&#xff0c;不得不每天手动刷新十几个不同的网站&#xff0c;忍受着弹窗广告和混乱的排版&#xff0c;那么你一定能理解…...

开发AI Agent时利用Taotoken灵活切换底层模型提供商

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 开发AI Agent时利用Taotoken灵活切换底层模型提供商 应用场景类&#xff0c;针对正在开发AI Agent应用的工程师&#xff0c;说明如…...

告别CH554:手把手教你用STM32F070实现电容触摸屏的I2C转USB HID驱动

告别CH554&#xff1a;手把手教你用STM32F070实现电容触摸屏的I2C转USB HID驱动 在嵌入式设备开发中&#xff0c;电容触摸屏的接口转换一直是个常见需求。传统方案多采用专用转换芯片如CH554系列&#xff0c;但随着供应链波动和功能扩展需求的增加&#xff0c;越来越多的工程师…...

黎巴嫩五大核心港口:贝鲁特港、的黎波里港等

黎巴嫩三大核心港口——贝鲁特港、的黎波里港与赛达港&#xff0c;分工明确、互补发力&#xff0c;承担全国进出口货运重任&#xff0c;是中东航运与区域贸易的关键枢纽。一、贝鲁特港&#xff08;LBBEY&#xff09;&#xff1a;全国第一大港、中东航运枢纽贝鲁特港位于贝鲁特北…...

DeepSeek Coder真能替代初级程序员?实测37个真实开发任务后的性能拐点分析

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek Coder真能替代初级程序员&#xff1f;实测37个真实开发任务后的性能拐点分析 我们对 DeepSeek Coder v2.5 在 GitHub 公共仓库中抽取的 37 个真实开发场景&#xff08;含 LeetCode 中等题、小…...

Midscene.js 2025技术演进:从自动化工具到智能操作平台的架构升级

Midscene.js 2025技术演进&#xff1a;从自动化工具到智能操作平台的架构升级 【免费下载链接】midscene AI-powered, vision-driven UI automation for every platform. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 在人工智能技术快速发展的今天&…...