容器化部署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的镜像

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

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

相关文章

用开源模型MusicGen制作六一儿童节专属音乐

使用的是开源模型MusicGen&#xff0c;它可以根据文字描述或者已有旋律生成高质量的音乐(32kHz)&#xff0c;其原理是通过生成Encodec token然后再解码为音频&#xff0c;模型利用EnCodec神经音频编解码器来从原始波形中学习离散音频token。EnCodec将音频信号映射到一个或多个并…

堡垒机,日志审计系统,行为管理,漏洞扫描的作用

堡垒机 日志审计 行为管理 漏洞扫描 堡垒机和防火墙的区别主要体现在以下几个方面&#xff1a; 功能不同&#xff1a;堡垒机主要用于管理和控制服务器访问权限&#xff0c;提供安全的登录通道和权限控制&#xff0c;还可以记录并监控用户对服务器的所有操作&#xff0c;为后…

两个数相加减高级实现

不使用实现两数相加 #include <stdio.h> int plus(int a, int b) {int sum0,addication0;while(b!0){sum a^b;addication (a&b)<<1;a sum;b addication;}return a; }不使用-实现两数相减 #include <stdio.h> int sub(int a, int b) {int sum0,abdc…

C++ 课堂实验 编写一个能计算银行存款的小程序。

本关任务&#xff1a;编写一个能计算银行存款的小程序。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.简单的循环语句&#xff0c;2.基本数据类型。 编程要求 10万元存银行&#xff0c;每年利息3.75%&#xff0c;每年计算一次利息&#xff0c;将本金加上…

基于Open3D的点云处理24-ICP匹配cuda加速

参考:docs/jupyter/t_pipelines/t_icp_registration.ipynb 完整测试用例: import open3d as o3d import open3d.core as o3cif o3d.__DEVICE_API__ == cuda:import open3d.cuda.pybind.t.pipelines.registration as treg else:

mac地址一样,ip不同,能ping通么?

一、mac地址一样&#xff0c;ip不通能ping通过么&#xff1f; 结论&#xff1a;两台设置的mac地址一样&#xff0c;不管是否通过交换机&#xff0c;两个设备之间都不会收到影响。 1、两个设备之间不通过交换机。 原因&#xff1a;这是因为在ping时&#xff0c;设备会发起arp…

携程梁建章:持续投资创新与AI,开启旅游行业未来增长

5月30至31日&#xff0c;携程集团在上海和张家界举办Envision 2024全球合作伙伴大会&#xff0c;邀请超50个国家和地区的1600余名外籍旅游业嘉宾与会&#xff0c;共同探讨中国跨境旅游市场发展机遇&#xff0c;讲好中国故事。 携程国际业务增速迅猛&#xff0c;创新与AI解锁未…

Unity 自定义房间布局系统 设计与实现一个灵活的房间放置系统 ——自定义房间区域功能

自定义房间区域功能 效果&#xff1a; 功能&#xff1a; 能够自定义房间的大小一键生成放置区域可控的放置网格点当物体放置到区域内可自动吸附物体是否可放置&#xff0c;放置时如果与其他物体交叉则不可放置&#xff08;纯算法计算&#xff09;管理房间内的物体&#xff0c…

云原生架构模式

本文主要介绍了云原生架构的主要设计模式&#xff0c;讨论了这些模式的优缺点及其适用场景&#xff0c;并探讨了在云计算环境中的应用和挑战。原文: Cloud-Native Architecture Patterns (Part 1)&#xff0c;Cloud-Native Architecture Patterns (Part 2) Bernard Hermant Uns…

【产品经理】总篇章

引言: 在最近频繁的产品职位面试中&#xff0c;我深刻体会到了作为产品需要的不仅仅是对市场和技术的敏锐洞察&#xff0c;更多的是在复杂多变的环境中&#xff0c;如何运用沟通、领导力和决策能力来引导产品从概念走向市场。这一系列博客将分享我多年经历和所学到的所以知识&a…

java —— 集合

一、集合的概念 集合可以看做是一个存储对象的容器&#xff0c;与数组不同的是集合可以存储不同类型的对象&#xff0c;但开发中一般不这样做。集合不能存储基本类型的对象&#xff0c;如果存储则需要将其转化为对应的包装类。 二、集合的分类 集合分为 Collection 和 Map 两…

AI技术:探索未来智能的无限可能

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;技术已经成为我们这个时代最引人瞩目的科技力量。从简单的自动化任务到复杂的决策支持系统&#xff0c;AI技术正在以前所未有的速度改变着我们的世界。本文将深入探讨AI技术的定义、发展历程、当前应用、面临…

JavaScript第四讲:函数,作用域,运算符

前言 在JavaScript的广阔天地中&#xff0c;函数、作用域、算术运算符和逻辑运算符是构成代码世界的基石。它们各自扮演着不同的角色&#xff0c;却又紧密相连&#xff0c;共同编织出丰富多彩的程序逻辑。无论是编写一个简单的网页交互&#xff0c;还是构建一个复杂的应用程序…

React-表单受控绑定

概念&#xff1a;使用React组件的状态&#xff08;useState&#xff09;控制表单的状态 1.准备一个React状态值 2.通过value属性绑定状态&#xff0c;通过onChange属性绑定状态同步的函数

js或者es6 已知id为222的对象数据,如何查询并返回该数据中parentId: 7对应的对象父节点数据的对象

要查询并返回id为222的对象数据中parentId为7对应的对象的父节点数据&#xff0c;我们需要遍历整个data数组&#xff0c;找到id为222的对象&#xff0c;并从其父节点中提取信息。由于您提供的data数组中的对象格式存在问题&#xff08;例如&#xff0c;对象的键值对应该用花括号…

2024年5月总结及随笔之快乐五一

1. 回头看 日更坚持了517天。 读《天才与算法&#xff1a;人脑与AI的数学思维》更新完成 2023年至2024年5月底累计码字1177253字&#xff0c;累计日均码字2277字。 2024年5月码字95875字&#xff0c;同比增长66.7%&#xff0c;环比增长9.3%&#xff0c;日均码字数3092字&am…

jenkins快速入门

Jenkins 是啥&#xff1f; Jenkins 是一个超级能干的自动化助手&#xff0c;它的主要任务是帮你自动构建项目、测试代码、部署应用等等&#xff0c;就像你告诉它&#xff1a;“嘿&#xff0c;Jenkins&#xff0c;我改了代码&#xff0c;你帮我看看能不能正常运行&#xff0c;没…

STM32 定时器与PWM的LED控制

学习目标&#xff1a; 1. 使用定时器的某一个通道控制LED周期性亮灭&#xff1b; 2. 采用定时器PWM模式&#xff0c;让 LED 以呼吸灯方式渐亮渐灭。 一、定时器 1、STM32定时器介绍 STMicroelectronics是STM32微控制器中的重要块&#xff0c;具有丰富的外设和功能&#xff0…

Dijkstra求最短路篇一(全网最详细讲解两种方法,适合小白)(python,其他语言也适用)

前言&#xff1a; Dijkstra算法博客讲解分为两篇讲解&#xff0c;这两篇博客对所有有难点的问题都会讲解&#xff0c;小白也能很好理解。看完这两篇博客后保证收获满满。 本篇博客讲解朴素Dijkstra算法&#xff0c;第二篇博客讲解堆优化Dijkstra算法Dijkstra求最短路篇二(全网…

从C++示例理解开闭原则

开闭原则要求我们在编写代码时&#xff0c;尽量不去修改原先的代码&#xff0c;当出现新的业务需求时&#xff0c;应该通过增加新代码的形式扩展业务而不是对原代码进行修改。 假如我们现在有一批产品&#xff0c;每个产品都具有颜色和大小&#xff0c;产品其定义如下&#xf…