docker持续集成环境的部署
admin
2023-03-25 09:21:27
0

docker部署持续集成环境

部署准备
jenkins服务器 10.1.2.183
docker服务器  10.1.2.184
Git/Harbor服务器 10.1.2.182
各服务版本
CentOS 7.4_x64
Maven 3.5
Tomcat 8
JDK 1.8
Jenkins 2.6
DockerCE 17.06
在Git服务器
1、安装Git

yum install git

2、创建Git用户

useradd git

passwd git

3、创建仓库

su – git

mkdir solo.git

cd /home/git/solo.git

git --bare init

在git服务器和jenkins服务器分别安装docker服务添加国内镜像源并分别在两台的/etc/docker/daemon.json里面添加对harbor主机的信任,如下
{"registry-mirrors": [ "https://registry.docker-cn.com"],
"insecure-registries": ["10.1.2.182"]}
在jenkins服务器
安装git,使用git的客户端
yum install git
安装openjdk1.8
tar zxvf jdk-8u45-linux-x64.tar.gz && mv jdk1.8.0_45 /usr/local/
下载git服务器上的空项目在本地建立一个空白示例仓库
git clone 10.1.2.182:/home/git/solo.git #在本地建立一个空白仓库
下载github上的示例项目
git clone https://github.com/lizhenliang/tomcat-java-demo
将下载的示例项目解压,将内容拷贝到空白仓库并且提交到本地git仓库
unzip solo-master.zip && cp -r solo-master/* solo/ && git add . && git commit  -m "all"   #在这边就是模拟将代码拉取下来,修改,再上传到git服务器
将soho项目提到的远程git服务器
git push origin master
在jekins服务器
使用dockerfile安装jenkins,dockerfile文件如下
mkdir /root/jenkins;cd /root/jenkins;
cat Dockerfile
FROM jenkins
USER root
RUN echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
RUN apt-get clean
RUN echo '' > /etc/apt/sources.list  \
&& echo 'deb http://security.debian.org/ jessie/updates main                               >>/etc/apt/sources.list \
&& echo 'deb-src http://security.debian.org/ jessie/updates main                           >>/etc/apt/sources.list \
&& echo 'deb http://archive.debian.org/debian/ jessie-backports non-free                       >>/etc/apt/sources.list \
&& echo 'deb-src http://archive.debian.org/debian/ jessie-backports non-free                   >>/etc/apt/sources.list \
&& echo 'deb http://archive.debian.org/debian/ jessie main contrib non-free                >>/etc/apt/sources.list \
&& echo 'deb-src http://archive.debian.org/debian/ jessie main contrib non-free            >>/etc/apt/sources.list
RUN apt-get update && apt-get install -y git libltdl-dev

构建jenkins镜像
docker build -t jenkins:v1
启动jenkins
docker run -d \
--name jenkins \
-p 8080:8080 \
-v /var/jenkins_home/:/var/jenkins_home \
-v /usr/local/apache-maven-3.5.0:/usr/local/maven \
-v /usr/local/jdk1.8.0_45:/usr/local/jdk \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/usr/bin/docker \
-v ~/.ssh:/root/.ssh \
jenkins:v1
配置docker这台和jenkins这台分别配置对harbor这台的免登陆配置用于git间的推拉
ssh-keygen
ssh-copy-id 10.1.2.182
访问10.1.2.183:8080进行jenkins安装
配置jenkins
修改jenkins国内升级源
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json
系统管理--全局工具配置
配置jdk,maven,git

在jenkins上配置对docker主机的密钥登陆
ssh-copy-id 10.1.2.184
在jenkins页面凭据管理添加凭据

将jenkins主机上的/root/.ssh/id_rsa文件内容复制到Private Key里面

添加远程主机
系统管理--系统设置

选择前面添加的ROOT用户

部署项目
新建一个maven项目

配置Git,凭据不需要选,因为jenkins服务器已经配置好对git服务器的免交互

PS:上图中如果git账号不能使用,就使用root账号
构建选项

构建一下测试看maven有没有完成
下面我们将构建完的包打包成镜像,上传到harbor仓库
在jenkins上 构建tomcat基础镜像,以后以这个基础镜像为基础构建项目
mkdir /root/solo
cat Dockerfile
FROM centos:7
MAINTAINER www.aliangedu.com

RUN yum install unzip iproute -y

ENV JAVA_HOME /usr/local/jdk

ADD apache-tomcat-8.0.46.tar.gz /usr/local
RUN mv /usr/local/apache-tomcat-8.0.46 /usr/local/tomcat

WORKDIR /usr/local/tomcat
EXPOSE 8080
ENTRYPOINT ["./bin/catalina.sh", "run"]
构建
docker build -t 10.1.2.182/test/tomcat:v1 .    #这里构建的时候直接打标记等下直接推送到仓库.
推送
在harbor创建test项目,设置项目的成员chench权限为项目管理员或开发权限,否则会无法push
docker push 10.1.2.182/test/tomcat:v1
选择构建完执行脚本,在脚本里里面使用Dockfile构建镜像,然后将镜像上传到GIt仓库

选择ssh到远程主机执行shell脚本
从Git仓库拉取镜像到docker服务器并运行

浏览器访问docker主机ip:8888查看是否启动成功

相关内容

热门资讯

伊朗警告法英两国:只有我们能保... △霍尔木兹海峡(资料图)针对法国和英国计划向红海及霍尔木兹海峡周边海域增派军舰,伊朗副外长加里巴巴迪...
这次对武大不妨多一点包容 1)国内某手机品牌为母亲节准备的文案,引发了很大的争议。2)我想,品牌方肯定也在努力反思当中,它在第...
俄乌互指对方违反停火安排,攻击... 当地时间10日,乌克兰总统泽连斯基发表视频讲话表示,俄方当天尚未对乌发动大规模袭击,但前线地区及邻近...
内塔尼亚胡:美以对伊朗的军事行... △以色列总理内塔尼亚胡总台记者当地时间5月10日获悉,以色列总理内塔尼亚胡在接受采访时表示,美以对伊...
越南男子不慎卷入粉碎机身亡,监... 5月7日,越南嘉莱省一名工人作业时被乳胶粉碎机卷入不幸身亡。监控显示这名工人用工具将乳胶送入粉碎机,...
超20艘美国军舰参与封锁伊朗任... 新华社华盛顿5月10日电 美军中央司令部10日在社交媒体发文称,超过20艘美国军舰参与对伊朗实施封锁...
清华硕士参与智力测验仅得25分... 5月10日,一网友@是一颗努力的豆子 分享自己在硕士入学当月在三甲精神科参与瑞文智力测验仅得25分的...
胡锡进:武大急于撇清自己,情理... 说实话,我作为老媒体人和网上人,觉得武大不该这样回应。尽管我知道,在OPPO那个引发广泛指责的“母亲...
DeepSeek塞进苹果本儿,... 文 | 字母AI 在agent时代最贵的是什么?是token。 一些重度agent使用者,一个月用...
中美将于5月12日—13日举行... 有记者问:近期有消息称,中美双方将很快举行下一轮经贸磋商,请问商务部是否有最新消息?答:经中美双方商...