(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) . //注意后面的点号不要忘记
方式一:直接docker pull 拉取
方式二:Dockerfile的方式(本教程采用)
找一个文件路径存放编写的Dockerfile文件
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的页面完成配置
通过docker exec -it (jenkins的容器编号) /bin/bash进入jenkins的容器中
通过cat /root/.jenkins/secrets/initialAdminPassword查看jenkins的初始密码
接下来就是下载插件,这里提醒如果安装推荐插件的的话,出现爆红下载不成功的插件,说明jenkins版本不匹配,重新构建新的版本jenkins就可以了,或者自定义安装你想要的版本插件
进入jenkins页面里配置,我们需要配置git.maven.jdk
首先需要安装ssh git 和maven的插件 此时点 系统管理-> 插件管理, 进入到插件安装界面,在插件安装界面,选择高级
进入后点击可选插件,然后搜索想要安装的插件
ssh的插件
git 插件
如果搜索不到,说明已经安装过了
maven 插件
直接安装后,开始配置jenkins的环境
找到 系统管理>系统设置>SSH Servers (不安装ssh插件,是没有这个选项的)
配置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同级目录
这里推荐的方式是构建流水线(Pipline)任务:
没有pipline插件是没有这个选项的,一般新版的jenkins选择安装推荐的插件时候都会安装上去
根据实际情况自行配置,不配置也可以,重点在接下来的流水线脚本
点击生成脚本,生成的脚本,放进
stage('git'){
git脚本命令
}
重点是发布服务的步骤
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 构建启动容器
每一个deploy步骤同理
点击立即构建,这里是构建完的结果,按照脚本中的顺序来一步步构建部署项目的