gitlab+jenkins+docker 实现自动化部署(一)

gitlab+jenkins+docker 实现自动化部署(一)gitlab jenkins docker 实现自动化部署超详细 爆肝

目录

1.安装环境

1.1配置JDK

1.2 配置maven环境

 1.3 dokcer的安装

2. 使用docker搭建gitlab

3.使用docker部署Jenkins


此次用一台主机作为试验环境,gitlab和jenkins使用容器化的方式部署。

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,提供了数百个插件来支持构建,部署和自动化任何项目。我们可以使用Jenkins结合常用的版本控制工具(git、svn等)来实现自动部署项目,比如说我们从本地上传代码到Gitlab代码仓库,Jenkins就会帮我们自动同步代码,然后经编译打包之后推送至远程Docker仓库,再之后我们通过服务器从远程Docker仓库拉取镜像、创建及启动容器,然后就可以通过浏览器访问了,整个过程几乎都是自动完成的,而我们只需要上传代码就可以了。

1.安装环境

JDK下载路径:链接: https://pan.baidu.com/s/1HL8T7tgJnO2ZryihRVt44w 提取码: 868r 

1.1配置JDK

JDK:我们让jdk放在指定的位置就需要我们先创建文件夹  

mkdir - p  /usr/java

gitlab+jenkins+docker 实现自动化部署(一)

 上传jdk到服务器指定的目录进行解压

tar -zxvf jdk-8u181-linux-x64.tar.gz

配置环境变量

export JAVA_HOME=/usr/java/jdk1.8.0_181 ///java的具体解压包路径jdk1.8.0_181替换为你解压后的文件夹名字 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib 

gitlab+jenkins+docker 实现自动化部署(一)

 加载环境变量,查验java版本是否可以使用

source /etc/profile //加载环境变量 java -verison //查看java版本

gitlab+jenkins+docker 实现自动化部署(一)

 成功安装java(不,应该说是成功可以调用java)

1.2 配置maven环境

将文件放置在指定目录,首先创建目录,进入到该目录下:

mkdir -p /usr/maven cd /usr/maven

然后下载,解压。

wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz //下载 tar -zxvf apache-maven-3.3.9-bin.tar.gz //解压 

设置环境变量

export MAVEN_HOME=/usr/maven/apache-maven-3.3.9 export PATH=$MAVEN_HOME/bin:$PATH 

gitlab+jenkins+docker 实现自动化部署(一)

加载环境变量,测试maven是否可以调用:

source /etc/profile   //加载环境变量 mvn -v //查看是否成功

gitlab+jenkins+docker 实现自动化部署(一)

 配置镜像加速+指定仓库地址, 配置jar包下载路径,自己指定路径。

gitlab+jenkins+docker 实现自动化部署(一)

配置阿里镜像加速,默认是从中央仓库拉取的。

gitlab+jenkins+docker 实现自动化部署(一)

 1.3 dokcer的安装

之前的博客有写怎样安装详情请移步二进制安装Docker_秋为春的博客-CSDN博客_docker 二进制安装

2. 使用docker搭建gitlab

拉取镜像,不指定版本,默认拉取的是最新版本。

docker pull gitlab/gitlab-ce

创建GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 容器启动后可以映射到本机,然后后续就可以直接在主机查看和编辑了,不用再进入容器操作,便于日后升级, 因此我们先准备这三个目录。

# 配置文件 mkdir -p /home/gitlab/etc # 数据文件 mkdir -p /home/gitlab/log # 日志文件 mkdir -p /home/gitlab/data

创建并启动容器

docker run --publish 8443:443 \ --publish 8090:80 \ --name gitlab \ --privileged=true --restart unless-stopped \ -v /home/gitlab/etc:/etc/gitlab \ -v /home/gitlab/log:/var/log/gitlab \ -v /home/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest;

修改配置文件,不修改配置文件,是无法访问gitlab的。

修改 /home/gitlab/etc/gitlab.rb 把external_url改成部署机器的域名或者IP地址。

gitlab+jenkins+docker 实现自动化部署(一)

 修改 /home/gitlab/data/gitlab-rails/etc/gitlab.yml。

vi /home/gitlab/data/gitlab-rails/etc/gitlab.yml

找到关键字  Web server settings ,将 host 的值改成映射的外部主机 ip 地址和端口,这里会显示在 gitlab 克隆地址。 

gitlab+jenkins+docker 实现自动化部署(一)

修改之后,我们重启一下 gitlab

docker restart gitlab 

 就可以访问了

gitlab+jenkins+docker 实现自动化部署(一)

 但是不知道密码是啥,直接改吧,改为了wzj。

进入容器命令:docker exec -it 
   <容器id>
     bash 执行 gitlab-rails console //进入中终端 user = User.where(username: 'root').first //查找用户 user.password = 'wzj' //更改密码 user.password_confirmation = 'wzj' // user.save! 必须同时更改密码和password_confirmation才能使其正常工作,别忘了保存更改 
   

gitlab+jenkins+docker 实现自动化部署(一)

 进来了,啊哦,舒服。gitlab+jenkins+docker 实现自动化部署(一)

 操作

界面是英文的,如果想改中文的话,在设置里面改就好了,在这里就不多阐述这个了。

 新建空白项目gitlab+jenkins+docker 实现自动化部署(一)

 gitlab+jenkins+docker 实现自动化部署(一)

 clone一下代码

gitlab+jenkins+docker 实现自动化部署(一)

 如果没有Git命令,就需要yum安装一下

yum -y install git 

 拉取

git clone http://192.168.17.153:8090/root/ceshi.git 

由于我没有创建任何东西,所以拉的话是个空版本库,拉的期间还需要用户和密码。 

gitlab+jenkins+docker 实现自动化部署(一)

3.使用docker部署Jenkins

拉取Jenkins镜像

docker pull jenkins/jenkins:lts

运行Jenkins

docker run --name=jenkins --privileged=true \ -u root \ --rm \ -d \ -p 8080:8080 \ -p 50000:50000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ -v $(which docker):/usr/bin/docker \ -v /etc/sysconfig/docker:/etc/sysconfig/docker \ -v /usr/java/jdk1.8.0_181:/usr/java/jdk1.8.0_181 \ -v /usr/maven/apache-maven-3.3.9:/usr/local/maven \ -v /usr/maven/repo:/usr/local/maven_repository \ -v /usr/jenkins-data:/var/jenkins_home \ jenkins/jenkins:lts

gitlab+jenkins+docker 实现自动化部署(一)

 浏览器打开:http://192.168.17.153:8080

gitlab+jenkins+docker 实现自动化部署(一)

 在docker中查密码

docker logs jenkins 

gitlab+jenkins+docker 实现自动化部署(一) 我们选择推荐的插件

gitlab+jenkins+docker 实现自动化部署(一)

 安装完成了吖

gitlab+jenkins+docker 实现自动化部署(一)

进行实例地址配置,该地址将作为将来Jenkins的访问地址:

gitlab+jenkins+docker 实现自动化部署(一) 

Maven配置修改,依次进入:系统管理 > 全局工具配置

①首先是顶部的Maven,我们选择文件系统中的setting文件,文件路径使用创建容器时指定的Maven路径/usr/maven/

/usr/maven/apache-maven-3.3.9/conf/settings.xml

gitlab+jenkins+docker 实现自动化部署(一)

②然后拉到最下边Maven节点,点击新增Maven,起一个名字,然后指定maven路径,去掉自动安装的选项,然后应用>保存

gitlab+jenkins+docker 实现自动化部署(一) 创建项目

gitlab+jenkins+docker 实现自动化部署(一)

 点击确定之后会跳入配置界面,接下来就是配置我们的自动化操作,首先是配置项目的拉取地址,在这我是基于Gitlab的。

gitlab+jenkins+docker 实现自动化部署(一)

报错是因为没有认证,需要添加GitLab的账号和密码

gitlab+jenkins+docker 实现自动化部署(一)

 添加后就没有报错gitlab+jenkins+docker 实现自动化部署(一)

后续接着爆肝~~

 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205548.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午5:46
下一篇 2026年3月19日 下午5:46


相关推荐

  • 基于Docker的Kafka集群搭建

    基于Docker的Kafka集群搭建1.pulldocker,在机器上下载最新版本的kafka和zookeeper镜像,这里使用的是wurstmeister的镜像dockerpullwurstmeister/kafkadockerpullwurstmeister/zookeeper2.装好的docker镜像3.启动zk容器Dockerrun–d–namezookeeper–p2181:…

    2022年6月9日
    54
  • 群晖docker使用教程_docker的使用

    群晖docker使用教程_docker的使用概括Docker与传统虚拟机的区别与传统虚拟机的区别Docker的安装的安装Dockerdaemon,client,containerd镜像与容器操作容器运行配置Docker网络配置网络配置AlpineDockerImage制作自己的DockerImageDocker安全性问题安全性问题Dock

    2022年10月9日
    8
  • 创建可以ssh的docker容器[通俗易懂]

    创建可以ssh的docker容器

    2022年3月2日
    74
  • Docker镜像自动执行脚本.sh

    Docker镜像自动执行脚本.sh由于博客现在在docker中部署的,每次打包部署,需要停掉旧容器->删除旧容器->删除镜像->将新的jar包打包成镜像->再次运行,每次发布都需要重复的执行此操作,于是想将所有命令写成脚本,jar包上传之后,运行脚本即可。命令:app_name=’java-blog’app_port=’8081’# 停止正在运行的容器echo ‘……stop container……’docker stop ${app_name}# 删除容器echo ‘…..

    2022年6月13日
    198
  • docker-compose 集群_docker集群搭建

    docker-compose 集群_docker集群搭建前言实际工作中我们部署一个应用,一般不仅仅只有一个容器,可能会涉及到多个,比如用到数据库,中间件MQ,web前端和后端服务,等多个容器。我们如果一个个去启动应用,当项目非常多时,就很难记住了,所有

    2022年7月28日
    11
  • docker如何启动镜像_镜像是反的吗

    docker如何启动镜像_镜像是反的吗一、dockerrun启动–env-file表示从文件加载环境变量,文件格式为key=value每行一个变量-v表示将宿主机上的文件挂载到镜像中,冒号前面表示宿主机文件路径,后面表示镜像文件路径,都要用绝对路径-p表示将镜像中的8080端口映射到宿主机上的8083端口,10.142.8.12代表宿主机ipdockerrun-it–env-file./run/h…

    2026年2月18日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号