jenkins+docker-compose部署springcloud项目

一.配置docker环境

注意:本docker系统镜像环境为centos7 ,通过docker pull 拉取的时候一定要指定版本,不然拉取的是最新的是centos8

1.项目的基础环境 centos7 ssh jdk8 tomcat8

(1) docker pull centos:7
(2)找一个文件路径存放编写cento7-ssh的Dockerfile文件

FROM centos:7
MAINTAINER itapechang <[email protected]>
RUN yum -y update
RUN yum install -y passwd openssh-server openssh-clients initscripts net-tool
RUN yum install python-setuptools -y   ### centos8要指定python的版本号
RUN easy_install supervisor
RUN echo 'root:root' | chpasswd   ###账号:root  密码:root
RUN /usr/sbin/sshd-keygen

EXPOSE 22
CMD /usr/sbin/sshd -D

构建centos7-ssh 镜像
在Dockerfile目录下执行构建指令
docker build -t 镜像名(如:itapechang/centos7-ssh) . //注意后面的点号不要忘记

(3)找一个文件路径存放编写jdk8的Dockerfile文件

FROM itapechang/centos7-ssh  #(基于前一个你创建的ssh镜像)
MAINTAINER itapechang <[email protected]>
RUN yum clean all
RUN yum -y update
# Install libs
RUN yum install deltarpm rpm make wget tar unzip \
         gcc gcc-c++ -y

RUN mkdir -p /home/work/apps/
RUN mkdir -p /usr/local/java/
WORKDIR /home/work/apps/
#RUN wget --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie;" http://download.oracle.com/otn-pub/java/jdk/8u171-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u171-linux-x64.tar.gz  (不要在线下载, 2f38c3b165be4555a1fa6e98c45e0808一串数字会变化 )     
# 把你的jdk 的tar.gz存放在和Dockerfile同级的目录下
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
WORKDIR /usr/local/java/
# RUN tar -zxvf jdk-8u171-linux-x64.tar.gz
# RUN rm jdk-8u171-linux-x64.tar.gz
# RUN mv -f jdk1.8.0_171/ /usr/local/java/jdk1.8.0_171
# 配置环境变量
ENV JAVA_HOME=/usr/local/java/jdk1.8.0_171
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# open ports
EXPOSE 22

构建centos7-jdk8镜像
在Dockerfile目录下执行构建指令
docker build -t 镜像名(如:itapechang/centos7-jdk8) . //注意后面的点号不要忘记

(4)找一个文件路径存放编写tomcat8的Dockerfile文件

FROM itapechang/centos7-jdk8
MAINTAINER itapechang <[email protected]>

RUN yum clean all
RUN yum -y update
# Install libs
WORKDIR /home/work/apps/
#RUN wget 在线下载的地址 (推荐同上,把下载好的包移到服务器上)
ADD apache-tomcat-8.5.47.tar.gz /usr/local/
WORKDIR /usr/local/

EXPOSE 8080
COPY supervisord.conf /etc/supervisord.conf    # supervisord主要是控制监控容器的启动,具体这里不做详解
CMD ["/usr/bin/supervisord"]

supervisord 文件

[supervisord]
nodaemon=true
[program:tomcat]
command=/usr/local/apache-tomcat-8.5.47/bin/catalina.sh start

构建centos7-tomcat8镜像
在Dockerfile目录下执行构建指令
docker build -t 镜像名(如:itapechang/centos7-tomcat8) . //注意后面的点号不要忘记

以上是搭建基础环境,本文档重点讲解项目自动化部署流程,项目里用到的其他环境如redis/nginx等自行构建

服务器搭建jenkins环境

方式一:直接docker pull 拉取
方式二:Dockerfile的方式(本教程采用)
找一个文件路径存放编写的Dockerfile文件
jenkins+docker-compose部署springcloud项目_第1张图片
jenkins的Dockerfile内容

FROM itapechang/centos7-tomcat8
MAINTAINER itapechang <[email protected]>

RUN yum install -y git maven
#RUN yum -y install git && yum -y install maven

WORKDIR /usr/local/apache-tomcat-8.5.47/webapps/ROOT/
RUN rm -fr ./*
RUN yum install wget curl unzip iproute net-tools -y
RUN wget http://ftp-nyc.osuosl.org/pub/jenkins/war/2.205/jenkins.war
RUN unzip jenkins.war
WORKDIR /usr/local/apache-tomcat-8.5.47/webapps/
RUN rm -fr docs
RUN rm -fr examples
RUN rm -fr manager
RUN rm -fr host-manager
EXPOSE 8080
EXPOSE 22
ENTRYPOINT /usr/local/apache-tomcat-8.5.47/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.5.47/logs/catalina.out

通过docker-compose构建启动
docker-compose.yml

version: '2'
services:
  #1.jenkins
  redis:
    build: /usr/local/env/jenkins/    ## jenkins的Dockerfile所在的目录
    mem_limit: 300M
    ports:
     - "9001:8080"

同理,在docker-compose里可以编排其他的镜像,如redis/nginx/mysql

docker-compose up -d jenkins

接下来,打开jenkins的页面完成配置
jenkins+docker-compose部署springcloud项目_第2张图片
通过docker exec -it (jenkins的容器编号) /bin/bash进入jenkins的容器中

通过cat /root/.jenkins/secrets/initialAdminPassword查看jenkins的初始密码

接下来就是下载插件,这里提醒如果安装推荐插件的的话,出现爆红下载不成功的插件,说明jenkins版本不匹配,重新构建新的版本jenkins就可以了,或者自定义安装你想要的版本插件

进入jenkins页面里配置,我们需要配置git.maven.jdk
首先需要安装ssh git 和maven的插件 此时点 系统管理-> 插件管理, 进入到插件安装界面,在插件安装界面,选择高级
jenkins+docker-compose部署springcloud项目_第3张图片
进入后点击可选插件,然后搜索想要安装的插件
ssh的插件
jenkins+docker-compose部署springcloud项目_第4张图片
git 插件
如果搜索不到,说明已经安装过了
在这里插入图片描述
maven 插件
jenkins+docker-compose部署springcloud项目_第5张图片
直接安装后,开始配置jenkins的环境
找到 系统管理>系统设置>SSH Servers (不安装ssh插件,是没有这个选项的)
jenkins+docker-compose部署springcloud项目_第6张图片
配置name:自定义,如server_jenkins
Hostname: 服务器地址 192.xxx.xxx.xxx
Username:服务器账号名
Remote Directory:项目的目录前缀目录,如项目路径是/home/project/项目名,这个就配置/home/project
点击高级,输入服务器密码
然后点击Test Configuration,提示Success说明链接成功
最后保存退出

jenkins里面配置maven.jdk
点击系统管理>全局工具配置
如果jenkins没有安装apache-maven-xx,需要去下载一个然后解压到jenkins的容器中
可以通过,docker cp 宿主机的maven路径 容器ID:容器中的目录 如:docker cp /usr/local/apache-maven-3.5 adasdad12:/usr/local/

这里的settings文件,可以写一份自己的,放在jenkins容器中,路径自定义,不一定都要放在和maven同级目录
jenkins+docker-compose部署springcloud项目_第7张图片

jenkins+docker-compose部署springcloud项目_第8张图片
最后点击保存

接下来配置好了开始新建部署任务

这里推荐的方式是构建流水线(Pipline)任务:
没有pipline插件是没有这个选项的,一般新版的jenkins选择安装推荐的插件时候都会安装上去
jenkins+docker-compose部署springcloud项目_第9张图片
jenkins+docker-compose部署springcloud项目_第10张图片
根据实际情况自行配置,不配置也可以,重点在接下来的流水线脚本
jenkins+docker-compose部署springcloud项目_第11张图片

脚本不会写不要紧,可以自动生成

点击流水线语法
jenkins+docker-compose部署springcloud项目_第12张图片
打开页面后,选择要构建的步骤,如Git
jenkins+docker-compose部署springcloud项目_第13张图片

点击生成脚本,生成的脚本,放进

stage('git'){
	git脚本命令
}

jenkins+docker-compose部署springcloud项目_第14张图片
重点是发布服务的步骤
jenkins+docker-compose部署springcloud项目_第15张图片
Name:之前步骤系统配置的时候已经配置好的服务器名称
Sources files: 打包后jar包存在的路径,不用加上任务名
Remove prefix:移除jar包前的前缀路径
Remote directory:宿主机项目的位置,也就是宿主机服务Dockerfile文件在的位置,这里不用加上之前配置好的前缀路径,假如你的项目Dockerfile路径为:/home/project/a/,全局配置里面的路径为/home/project,那么这里就只用写/a就可以了
Exec command:连接到宿主机后执行的命令
cd 切换到docker-compose.yml所在的路径下
docker-compose stop xxx 停掉已启动的
docker-compose build xxx 重新构建
docker-compose up -d xxx 构建启动容器
jenkins+docker-compose部署springcloud项目_第16张图片
每一个deploy步骤同理
点击立即构建,这里是构建完的结果,按照脚本中的顺序来一步步构建部署项目的
jenkins+docker-compose部署springcloud项目_第17张图片

你可能感兴趣的:(jenkins+docker-compose部署springcloud项目)