使用Docker安装Gitlab,Jenkins,Tomcat搭建流水线项目,实现DevOps自动化

写在前头,入职公司不久,发现公司都是用的Jenkins来实现自动化项目部署,十分方便,但作为底层开发人员,接触的不是很多,所以特地来详细的学习一下,扩充一下自己的技术栈!

以下内容需要拥有docker的基础知识,大家也可以多看看我之前的博客,都很详细。

我这里采用的是Docker容器化技术来安装的,方便,简单,环境如下:

  • 阿里云服务器一台 Centos7.6.4
  • 已安装好的Docker环境(详细看我之前的博客:Docker入门全教程)

Docker安装Gitlab


1、gitlab的安装

# 搜索gitlab镜像
[root@pihao /]# docker search gitlab --filter=STARS=500
NAME                   DESCRIPTION                                     STARS
gitlab/gitlab-ce       GitLab Community Edition docker image based …   2935
sameersbn/gitlab       Dockerfile to build a GitLab image for the D…   1152
gitlab/gitlab-runner   GitLab CI Multi Runner used to fetch and run…   615
# 我这里选择的是 gitlab/gitlab-ce最新版的镜像
[root@pihao /]# docker pull gitlab/gitlab-ce
Using default tag: latest
latest: Pulling from gitlab/gitlab-ce
e92ed755c008: Already exists
713c8b67b945: Pull complete
Digest: sha256:381c96323b10847583133ab6177feb8e6d69fd38a55d9d1c3872fa7b18025c2e
Status: Downloaded newer image for gitlab/gitlab-ce:latest
docker.io/gitlab/gitlab-ce:latest
# 拉取成功
[root@pihao /]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
gitlab/gitlab-ce      latest              2b9ac1a40dd1        2 days ago          1.81GB

2、gitlab的运行

# -p 端口映射(80端口是gitlab内部绑定的端口)
# -v 数据文件挂载 将文件都挂到我本机的/home目录下面
# --name 取别名
[root@pihao home]# docker run -d  -p 8443:443 -p 8090:80 -p 222:22 --name gitlab -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
f33cab7b2854e0131c388b6bf8b5bd609da9a4ea166226c9c8301b2c9673a8f5# 查看容器是否启动成功
[root@pihao home]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS
f33cab7b2854        gitlab/gitlab-ce    "/assets/wrapper"   5 seconds ago       Up 4 seconds (health: starting)   22/tcp, 0.0.0.0:8090->80/tcp, 0.0.0.0:8443->443/tcp   gitlab
[root@pihao home]# 启动成功

3、修改gitlab默认的配置文件

修改gitlab.rb配置文件

[root@pihao /]# vim /home/gitlab/config/gitlab.rb# 找到 external_url 这个属性配置,把注释去掉并且把它设置为你主机的地址注意,这里主机地址的后面不能加端口(这是一个坑),加了端口之后不能访问gitlab的页面!!!   如: external_url 'http://112.74.167.52'# 再将配置文件中以下的两个注释打开[root@pihao /]# gitlab_rails['gitlab_shell_ssh_port'] = 22
[root@pihao /]# gitlab_rails['gitlab_shell_git_timeout'] = 800

修改gitlab.yml文件

[root@pihao /]# vim /home/gitlab/data/gitlab-rails/etc/gitlab.yml
# 这里只需要设置你的主机ip以及端口;这里会显示在github的克隆地址!!!gitlab:## Web server settings (note: host is the FQDN, do not include http://)host: 112.74.167.52 # 宿主机的ip地址port: 8090 # https: false

OK,配置到这里,Gitlab页面就能正常访问了,http://112.74.167.52:8090,一般来说,第一次访问页面的时候可能会报502错误。莫慌!!!这是因为gitlab刚刚启动,很多功能还没启动起来,稍等一分钟即可正常访问!

访问如下:

使用方才设置的密码,然后使用root账号登入

进入的页面如下:

点击create a project,创建如下工程:

4、上传代码到gitlab

OK,现在我们已经搭建好gitlab服务器,并且创建了一个名叫upload-test-01的工程,那么接下来将往该工程中提交代码

复制工程的URL

复制URL,使用Eclipse或者IDEA将代码推送到仓库


推送成功

Docker安装Jenkins

Gitlab服务器已经搭建完毕,现在开始搭建Jenkins服务器

1、Jenkins的安装

写在前头,不要使用jenkins官方最新的那个镜像,那个已经不推荐使用了,很多的插件不支持安装,网上浏览了很多的博客,发现大家用的最多的是这个镜像 jenkins/jenkins:lts,而这些jenkins容器默认都是已经装好了jdk的环境的,由于我们后面需要整合maven对项目进行打包,那么我们还要在这个镜像中搭建好maven的环境。

拉取jenkins/jenkins:lts镜像
# 镜像搜索jenkins
[root@iZwz9eq1jai7e87n6vw5liZ /]# docker search jenkins --filter=STARS=500
NAME                  DESCRIPTION                                 STARS
jenkins               Official Jenkins Docker image               4806
jenkins/jenkins       The leading open source automation server   2084
jenkinsci/blueocean   https://jenkins.io/projects/blueocean       527
# 拉取jenkins/jenkins:lts镜像
[root@iZwz9eq1jai7e87n6vw5liZ /]# docker pull jenkins/jenkins:lts
lts: Pulling from jenkins/jenkins
3192219afd04: Pull complete
Digest: sha256:83df661d1a2ad921323868ca48f432b175b039bb9e16be0209c0253f3186f25e
Status: Downloaded newer image for jenkins/jenkins:lts
docker.io/jenkins/jenkins:lts
# 拉取成功
[root@iZwz9eq1jai7e87n6vw5liZ /]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jenkins/jenkins     lts                 5d1103b93f92        2 weeks ago         656MB
# 查看该镜像的环境变量
[root@iZwz9eq1jai7e87n6vw5liZ /]# docker inspect 5d1103b93f92

发现上述镜像默认安装jdk1.8,并且配置好了PATH,但是没有安装maven,为了方便我们后面,我们在这个镜像中添加maven的环境,那么就需要我们在这个镜像的基础上再去创建一个我们自己的jenkins镜像,而这个镜像是有maven环境的!!!那么如何开始呢??

创建带有maven环境的jenkins镜像
准备好一个maven的安装包

maven安装包下载地址:http://maven.apache.org/download.cgi

# 我把这个maven的安装包放到了 /home目录下
[root@iZwz9eq1jai7e87n6vw5liZ home]# ls
apache-maven-3.6.3-bin.tar.gz  readme.txt #(这个readme.txt只是一个镜像使用的说明文件,随便自己定义内容)
[root@iZwz9eq1jai7e87n6vw5liZ home]#
编写Dockfile文件

说明,我们自定义构建镜像就是根据这个Dockerfile文件来进行的!

# 创建Dockerfile文件
[root@iZwz9eq1jai7e87n6vw5liZ home]# vim Dockerfile      (注意:官方推荐命名,D是大写的)
# 输入以下内容: (不包括 # 后面的注释的内容)
FROM jenkins/jenkins:lts              # 以哪个基础镜像开始构建
MAINTAINER pihao<827699764@qq.com>    # 镜像作者的信息COPY readme.txt /var/jenkins_home/readme.txt # 复制方才的使用说明文件到镜像内部
ADD apache-maven-3.6.3-bin.tar.gz /var/jenkins_home/ # 添加需要的整合的内容,会自动解压ENV MYPATH /var/jenkins_home/ # 添加环境
WORKDIR $MYPATH # 容器启动后就切换到的目录ENV MAVEN_HOME /var/jenkins_home/apache-maven-3.6.3 # 添加maven的环境变量,就跟安装jdk差不多
ENV PATH $PATH:$MAVEN_HOME/bin # 将maven的变量加到总的PATH当中
构建镜像
[root@iZwz9eq1jai7e87n6vw5liZ home]# ls
apache-maven-3.6.3-bin.tar.gz  Dockerfile  jdk-8u251-linux-x64.tar.gz  readme.txt
# docker build 命令构建镜像(注意后面的 . 一定要加上,这里会自动寻找到Dockerfile文件,所以不用指定名字)
[root@iZwz9eq1jai7e87n6vw5liZ home]# docker build -t myjenkins .
Sending build context to Docker daemon  204.6MB
Step 1/8 : FROM jenkins/jenkins:lts---> 5d1103b93f92
Step 2/8 : MAINTAINER pihao<827699764@qq.com>---> Running in 9edb275b5e76
Removing intermediate container 9edb275b5e76---> 6e2357116d49
Step 3/8 : COPY readme.txt /var/jenkins_home/readme.txt---> f76bcbf77b93
Step 4/8 : ADD apache-maven-3.6.3-bin.tar.gz /var/jenkins_home/---> 44f6f2cf3182
Step 5/8 : ENV MYPATH /var/jenkins_home/---> Running in 44e048cbe299
Removing intermediate container 44e048cbe299---> e792ce76fb54
Step 6/8 : WORKDIR $MYPATH---> Running in 2fa21e5f5860
Removing intermediate container 2fa21e5f5860---> 4d0194703fca
Step 7/8 : ENV MAVEN_HOME /var/jenkins_home/apache-maven-3.6.3---> Running in 0f12c7d8844d
Removing intermediate container 0f12c7d8844d---> c067e3490a5b
Step 8/8 : ENV PATH $PATH:$MAVEN_HOME/bin---> Running in da8739ed9fd2
Removing intermediate container da8739ed9fd2---> 02556376487f
Successfully built 02556376487f
Successfully tagged myjenkins:latest # 说明构建成功# 查看我们自己构建的镜像
[root@iZwz9eq1jai7e87n6vw5liZ home]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myjenkins           latest              02556376487f        2 minutes ago       667MB
jenkins/jenkins     lts                 5d1103b93f92        2 weeks ago         656MB
[root@iZwz9eq1jai7e87n6vw5liZ home]#

这里我们再增加一步,那就是配置maven 本地仓库以及更换maven里面的镜像,我们更换成阿里云的镜像

# 编辑 maven的settings.xml配置文件
[root@iZwz9eq1jai7e87n6vw5liZ /]# ls
bin  boot  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@iZwz9eq1jai7e87n6vw5liZ /]# cd var/lib/docker/volumes/myjenkins/_data/
# 创建maven的本地仓库
[root@iZwz9eq1jai7e87n6vw5liZ /]# mkdir maven_repo
[root@iZwz9eq1jai7e87n6vw5liZ /]# cd apache-maven-3.6.3/conf/
[root@iZwz9eq1jai7e87n6vw5liZ conf]# ls
logging  settings.xml  toolchains.xml
[root@iZwz9eq1jai7e87n6vw5liZ conf]# vim settings.xml

添加阿里的镜像

<mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

OK

2、jenkins的运行

好,现在带有maven环境的jenkins镜像已经构建完毕,接下来应该运行这个镜像 run

# 运行容器
[root@iZwz9eq1jai7e87n6vw5liZ myjenkins]# docker run -d -p 8088:8080 -p 50000:50000 -v myjenkins:/var/jenkins_home --name myjenkins myjenkins
591fe973fd4b9095c904b36cc333bf4d385b3e9958e8cfa995d833a18da52e44
# 查看运行的容器
[root@iZwz9eq1jai7e87n6vw5liZ myjenkins]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED
591fe973fd4b        myjenkins           "/sbin/tini -- /usr/…"   34 seconds ago      Up 33 seconds       0.0.0.0:50000->50000/tcp, 0.0.0.0:8088->8080/tcp   myjenkins
[root@iZwz9eq1jai7e87n6vw5liZ myjenkins]#

容器运行到这里其实已经可以访问jenkins的页面了,但为了确保我们运行的容器环境无误,我们先进入容器内部确认一下 jdk,maven,以及相应的PATH

检查镜像内容是否安装了maven等相应的环境
# 进入容器内容
[root@iZwz9eq1jai7e87n6vw5liZ myjenkins]# docker exec -it myjenkins /bin/bash# 查看jdk版本
jenkins@591fe973fd4b:~$ java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)# 查看maven版本
jenkins@591fe973fd4b:~$ mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /var/jenkins_home/apache-maven-3.6.3
Java version: 1.8.0_242, vendor: Oracle Corporation, runtime: /usr/local/openjdk-8/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1062.18.1.el7.x86_64", arch: "amd64", family: "unix"
# 确认完毕,jenkins的环境无误!!!,如果不能正确显示相应的版本,那就有问题了,赶紧检查一下。
# 接下来我们就能放心访问jenkins的页面了

3、Jenkins的登入

jenkins默认的登入端口是8080,由于我们用8088做了映射,所以可以访问 http://IP:8088

登入jenkins页面

第一次访问如下图:

稍等几分钟后

进入容器内容,根据页面提示获取到加密串

# 进入容器获取加密串
[root@iZwz9eq1jai7e87n6vw5liZ updates]# docker exec -it myjenkins /bin/bash
# cat
jenkins@591fe973fd4b:~$ cat /var/jenkins_home/secrets/initialAdminPassword
f0da74842a5d4daa8465f14baff3b5f7 # 将这个加密串粘贴到页面上
jenkins@591fe973fd4b:~$

登入后的页面如下:

刚开始我们点击 选择插件来安装

创建第一个管理员账户完毕之后点击保存然后确认开始jenkins

配置jenkins的下载加速

点击Availavle,等到页面完全加载完毕之后(一点要等到页面全部在加载之后)

然后进入我们的挂载文件目录 /var/lib/docker/volume/myjenkins/_data/updates目录修改default.json文件

执行如下命令:

[root@iZwz9eq1jai7e87n6vw5liZ updates]# sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
[root@iZwz9eq1jai7e87n6vw5liZ updates]# 下载地址已经替换完毕,不相信的我们可以来查看一下
[root@iZwz9eq1jai7e87n6vw5liZ updates]# vim default.json
# 我们发现已经换成了 百度的地址了

default.json修改完毕之后我们再回来前端页面上:

将上面Update Site 输入框内容替换成如下:清华大学更新地址

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

点击summit,完毕之后重启页面 restart,然后从新输入账号密码完成登入操作!

至此,Jenkins加速的操作配置完成。

4、Jenkins的插件安装

加速的配置我们已经完毕,接下来就是安装一些插件。在这里,我们先安装几个必须的插件

安装中文汉化插件 Localization:Chinese

完毕后重启界面

汉化后界面

安装权限控制插件 Role-based Authorization Strategy

安装完毕之后设置权限策略:

安装凭证插件 Credentials Binding

安装后效果:

安装Git插件

5、Jenkins拉取Gitlab代码的两种方式

好,现在必要的插件也都安装完毕,接下来我们从Gitlab拉取代码到Jenkins,那这里就要介绍一下凭据的用处了!

  • Username with password (常用) 就是拉取代码时的账号和密码
  • SSH username with private key (常用) 需要配置公钥以及私钥
  • Secret file
  • Secret text
  • Cretificate
采用http的方式拉取代码

之前我们已经上传过一个最基本的Springboot项目到Gitlab,现在我们把它拉取到 Jenkins

先添加一个凭据用于等下拉取代码

构建一个自由风格的项目

查看构建信息

至此,项目已经构建完毕,也就是说已经从Gitlab获取到了源码!!!

采用ssh的方式拉取代码

接下来我们再来看另一种凭据的使用 SSH,要想使用SSH的方式,那我们需要先 生成公钥和私钥,公钥需要保存到Gitlab上,私钥需要保存到 Jenkins上,很多小伙伴有疑问了,这个密钥到底在哪生成呢?是在宿主机上还是docker的容器内部呢?简单分析一下,jenkins拉取代码肯定是从容器内容用Git拉取的,这里说了说了,之前只说了Jenkins默认安装了jdk的环境,其实,jenkins还默认安装了Git ,所以这个密钥是需要在容器内部生成的。

在容器内部生成公钥和私钥

# 进入jenkins容器
[root@iZwz9eq1jai7e87n6vw5liZ ~]# docker exec -it myjenkins /bin/bash
# ssh-keygen -t rsa
jenkins@591fe973fd4b:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/var/jenkins_home/.ssh/id_rsa): # 直接回车(存放目录)
Created directory '/var/jenkins_home/.ssh'.
Enter passphrase (empty for no passphrase): # 直接回车
Enter same passphrase again: # 直接回车
Your identification has been saved in /var/jenkins_home/.ssh/id_rsa.
Your public key has been saved in /var/jenkins_home/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:hRu7ogjttrYBVOvI/RgjkGOhtICyAZQtdzkB7+Wc/7M jenkins@591fe973fd4b
The key's randomart image is:
+---[RSA 2048]----+
|*+oo..o          |
|B++oo+   .       |
|**o.....o .      |
|*.+ . + .=       |
|.+ = . +S        |
| o. =   ..       |
|. o. .. ..       |
| ooo . .  ..     |
| o=o.      Eo    |
+----[SHA256]-----+ # 出现这个图像说明密钥已经生成完毕
# 切换到密钥存放目录
jenkins@591fe973fd4b:~$ cd .ssh/
jenkins@591fe973fd4b:~/.ssh$ ls
id_rsa(私钥)  id_rsa.pub(公钥)
# 查看公钥内容
jenkins@591fe973fd4b:~/.ssh$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCt34S7j5/wxW13xfJOqseQSlf3FPPxky0zMfhlefMltJOfD01iBS1dzosZk6fz/y5K4qMS1JSba8prZkzgHnrYpWqQX19+Ybur8cDPWxxqKORBD/LYv6F/FFBU298aKz/GFil19Q4LtD8GwJxfj/jQvPkcUQOafrRQbZXRXsvR9h4sM/f5ZAwR51uKVMs/4gt/HLBNNRMVrenUiR6lmHkR+D4DnygtAgaEFTE6Zahj2S8YupHgrVMMz2dUlePZ4CByeanIFUvSCmZwsubwMwoJm03kZOGM5k09b/96YhJwUtU1BtzjhXL+JODg7Diu3MTrZOPAZYZBvcc9134sp77d jenkins@591fe973fd4b
jenkins@591fe973fd4b:~/.ssh$

由于之前运行Gitlab容器的时候,指定了222端口为容器内22的映射端口,那么这里地方还要在.ssh目录下增加一个config的配置文件!这个很坑啊,很容易忘记,导致后面的ssh拉取代码的时候一直报permission denied的错误!!!,这个坑搞了我两天,上班时的心情都不好了!对了,这里还要给这个 .ssh 的文件777的权限(这里如果22端口没改则跳过这一步)

# 在 .ssh目录下新增    config文件
[root@iZwz9eq1jai7e87n6vw5liZ .ssh]# vim config
# config文件中编辑的内容
Host 112.74.167.52 # gitlab服务器地址
User root # gitlab登入账号
port 222 # ssh的端口,之前做了映射的
IdentityFile /var/jenkins_home/.ssh/id_rsa # 私钥所在目录

将id_rsa.pub(公钥)内容复制到Gitlab的 ssh keys 中

将id_rsa(私钥)内容复制到 Jenkins的ssh凭据里面

使用ssh的方式从Gitlab拉取代码

再创建一个项目test02使用ssh的方式来构建项目

查看构建信息:构建成功!

6、Jenkins配置JDK以及maven的环境

因为后续需要将拉取的代码进行打包操作,所以这里必须要先配置maven以及JDK的环境

查看Jenkins中现有的环境

[root@iZwz9eq1jai7e87n6vw5liZ /]# docker inspect myjenkins

Jenkins页面添加如下配置

再在系统配置添加如下变量

环境配置完毕

7、使用maven构建拉取的代码,生成jar/war包

至此,Gitlab以及Jenkins的搭建都已经说清楚了,还包括 jenkins从gitlab拉取代码的两种方式,那么接下来就再讲讲使用 Jenkins 对拉取的代码进行maven打包的把!这个也很简单

以 test01为例,点击 配置

编写maven打包指令

执行立即构建将项目打包

查看打包结果: 构建成功

那么接下来我们来看一下生成的springboot 的jar包

至此,使用Jenkins 对项目进行maven打包也已经完成!

截图截得我想吐啊,大家给个收藏关注吧!谢谢了。革命尚未成功,我们还需努力

Docker安装Tomcat

只要前面都是按照我的做的,应该都能安装成功,并且到这一步

Tomcat的安装

# 搜索tomcat镜像
[root@iZwz9eq1jai7e87n6vw5liZ /]# docker search tomcat --filter=STARS=50
NAME                DESCRIPTION                                     STARS
tomcat              Apache Tomcat is an open source implementati…   2751
tomee               Apache TomEE is an all-Apache Java EE certif…   79
dordoka/tomcat      Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 base…   54
# 这里我们直接pull最新版的tomcat
[root@iZwz9eq1jai7e87n6vw5liZ /]# docker pull tomcat
Using default tag: latest
e9afc4f90ab0: Pull complete
Digest: sha256:81c2a95e5b1b5867229d75255abe54928d505deb81c8ff8949b61fde1a5d30a1
Status: Downloaded newer image for tomcat:latest
docker.io/library/tomcat:latest
# 查看现有镜像
[root@iZwz9eq1jai7e87n6vw5liZ /]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myjenkins           latest              02556376487f        4 hours ago         667MB
tomcat              latest              2eb5a120304e        3 days ago          647MB
jenkins/jenkins     lts                 5d1103b93f92        2 weeks ago         656MB
[root@iZwz9eq1jai7e87n6vw5liZ /]# Tomcat镜像已经安装完毕

Tomcat的运行

# 运行tomcat
[root@iZwz9eq1jai7e87n6vw5liZ mytomcat]# docker run -d -p 8080:8080 --name tomcat -v mytomcat:/usr/local/tomcat tomcat
9aa32004d185990213381e6aa1cf03684af32ab9a8ff3f5bd602161bf440e85f
# 查看当前运行的容器
[root@iZwz9eq1jai7e87n6vw5liZ mytomcat]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                              NAMES
9aa32004d185        tomcat              "catalina.sh run"        48 seconds ago      Up 47 seconds       0.0.0.0:8080->8080/tcp                             tomcat
591fe973fd4b        myjenkins           "/sbin/tini -- /usr/…"   4 hours ago         Up 4 hours          0.0.0.0:50000->50000/tcp, 0.0.0.0:8088->8080/tcp   myjenkins
[root@iZwz9eq1jai7e87n6vw5liZ mytomcat]# tomcat容器启动成功

接下来就直接访问tomcat的页面吧! http://IP:8080

发现404,这是为什么呢?这是因为docker容器只保留了容器的最小功能,其他的配置能省就省,不信的话,我们可以切换到tomcat的webapps的目录下来一探究竟!!!

那要怎么样才能访问到tomcat的首页呢?其实很简单,我们发现tomcat的目录下面有一个webapps.dist的文件,我们只要把这个文件下的所有内容都复制到webapps的目录下面,即可访问到tomcat的经典首页!

# 复制命令
[root@iZwz9eq1jai7e87n6vw5liZ _data]# cp -r webapps.dist/* webapps/
[root@iZwz9eq1jai7e87n6vw5liZ _data]# cd webapps
[root@iZwz9eq1jai7e87n6vw5liZ webapps]# ls
docs  examples  host-manager  manager  ROOT
[root@iZwz9eq1jai7e87n6vw5liZ webapps]#

接下来我们再次访问 http://IP:8080,完美运行

Tmcat修改配置

修改 tomcat-user.xml 文件(_data/config/目录下)
# 我们为tomcat添加一个用户和角色
<tomcat-users><role rolename="tomcat" /><role rolename="role1" /><role rolename="manager-script" /><role rolename="manager-gui" /><role rolename="manager-status" /><role rolename="admin-gui" /><role rolename="admin-script" /><user username="tomcat" password="123456" roles="manager-gui,manager-                            script,tomcat,admin-gui,admin-script" />
</tomcat-users>

修改context.xml文件(_data/webapps/manager/META-INF/目录下)
#注释掉如下内容
<value className="org.apache.catalina.values.RemoteAddrValue"allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

OK配置完毕,接下来我们再次访问页面,点击 manager webapp 输入刚才设置的登入账号和密码 tomcat/123456登入查看

登入后页面:

至此,Tomcat的服务器也搭建完毕了。更新先停一段落,后续将会继续更新

Jenkins自动化项目部署的操作!!!只需要开发人员提交代码到版本库,那么Jenkins就自动将最新代码打包直接发布到Tomcat服务器,是不是很方便!也希望大家多多支持。头一次写这么详细,希望大家好好练习。

只要学不死,就往死里学!!!

使用Docker安装Gitlab,Jenkins,Tomcat搭建流水线项目环境,实现DevOps自动化步骤,很详细相关推荐

  1. Docker安装实践Jenkins

    Docker安装实践Jenkins 启动容器 配置Jenkins 配置Sonarqube jenkins集成Sonarqube Jenkins是开源的CI&CD软件领导者,提供超过1000个插 ...

  2. 使用docker安装gitlab以及gitlab简单使用

    使用docker安装gitlab以及gitlab简单使用 docker 安装gitlab以及使用 1.创建主机映射目录 2.gitlab镜像拉取 3.运行gitlab镜像 4.配置 5.配置ssl支持 ...

  3. 解决 Windows Docker 安装 Gitlab Volume 权限问题

    解决 Windows Docker 安装 Gitlab Volume 权限问题 参考文章: (1)解决 Windows Docker 安装 Gitlab Volume 权限问题 (2)https:// ...

  4. 群晖NAS教程(十六)、利用Docker安装GitLab管理代码工具

    为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客 群晖NAS教程(十六).利用Docker安装GitLab管理代码工具 群晖DSM上安装GitLab有两种方式,一种是直接在群晖套件上安装,另一种是 ...

  5. Docker安装配置Jenkins教程

    Docker安装配置Jenkins教程 前言 准备工作 一.安装Docker 1.安装 2.查看版本信息 二.配置Docker 镜像加速 1.编辑docker配置文件 2.配置镜像地址,编辑文件内容为 ...

  6. docker安装gitlab中文版(gitlab-ce:11.3.0-ce.0社区版)

    docker安装gitlab中文版(gitlab-ce:11.3.0-ce.0社区版) 1.安装docker: yum install docker 2.拉取gitlab中文镜像 docker pul ...

  7. docker安装halo+mysql+nginx搭建个人博客

    docker 安装halo+mysql+nginx搭建个人博客(debian or ubuntu) 1 简介 本文主要介绍debian和国内腾讯云ubuntu下安装docker,使用docker安装h ...

  8. Jenkins+Svn搭建持续集成环境和自动部署

    Jenkins+Svn搭建持续集成环境和自动部署 一.环境说明 centos 6.8     ip:192.168.1.26 二.运行环境配置 1.安装java环境,下载jdk并放在/usr/loca ...

  9. 基于 Jenkins 快速搭建持续集成环境--转

    源地址:http://www.ibm.com/developerworks/cn/java/j-lo-jenkins/ 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础 ...

最新文章

  1. SQLite的Pragma语句
  2. 【Qt】DOM读取XML文档
  3. SELinux深入理解
  4. pythontuple([1、2、3)_Python 语句\nprint(tuple([1,2,3]))\n的运行结果是
  5. MS CRM 2011 汇总更新4已经发布
  6. adb查看某个文件是否存在_linux实现检查文件夹是否存在不存在则创建
  7. 字节跳动面试:kafka配置参数
  8. python中的common_common:个人基础函数库
  9. lldp协议代码阅读_LLDPD协议验证过程记录
  10. linux symbol字体下载,解决:WPS for Linux提示“系统缺失字体symbol、wingdings、wingdings 2、wingdings 3、webding”...
  11. Foreign Language_english_补语
  12. 跳跃游戏 改 dfs
  13. webview 支付宝、微信支付 QQ登录
  14. Cron expression must consist of 6 fields
  15. 换ssd后Oracle,PS4更换480G SSD,终于流畅了!附更换教程
  16. repo 工具使用手册
  17. MATLAB在线测试
  18. 最高效的2FA 工具 Authy
  19. 推荐算法!基于隐语义模型的协同过滤推荐之用户商品推荐列表
  20. 解决Office Excel文档打开显示空白

热门文章

  1. 使用压缩软件对文件夹进行加密和解密过程
  2. 计算机网络参数阿尔法,阿尔法路由器设置图解简析【图文】
  3. 明日方舟找回密码服务器出错,明日方舟登录常见问题汇总及解决方案介绍
  4. Android手机中热点配置文件保存路径
  5. 平板电视全攻略 液晶电视VS等离子电视
  6. 深入理解快速排序(随机快排、双路快排、三路快排)
  7. 建筑企业在进行数字化转型的过程中的捷径有哪些?
  8. Java应用程序的基本结构是什么?
  9. T 沙龙移动实践日总结 ——享物说大流量⼩程序的架构与性能优化方案
  10. Druid监控页的使用(极为方便定位性能问题)