docker持续集成环境的部署

[复制链接]

1275

主题

1275

帖子

1013

积分

金牌会员

Rank: 6Rank: 6

积分
1013
分享到:
发表于 2022-6-30 10:24:30 | 显示全部楼层 |阅读模式
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 git2、创建Git用户
useradd gitpasswd git3、创建仓库
su – gitmkdir solo.gitcd /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 ?jessie/updates main ???????????????>>/etc/apt/sources.list \

&& echo 'deb-src ?jessie/updates main ?????????????>>/etc/apt/sources.list \

&& echo 'deb ?jessie-backports non-free ???????????>>/etc/apt/sources.list \

&& echo 'deb-src ?jessie-backports non-free ?????????>>/etc/apt/sources.list \

&& echo 'deb ?jessie main contrib non-free ???????>>/etc/apt/sources.list \

&& echo 'deb-src ?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查看是否启动成功

使用高级回帖 (可批量传图、插入视频等)快速回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则   Ctrl + Enter 快速发布  

发帖时请遵守我国法律,网站会将有关你发帖内容、时间以及发帖IP地址等记录保留,只要接到合法请求,即会将信息提供给有关政府机构。
快速回复 返回顶部 返回列表