docker 构建 gitlab、jenkins

GitLab安装

单独准备服务器,采用Docker安装

  • 查看GitLab镜像

    docker search gitlab
    
  • 拉取GitLab镜像

    docker pull gitlab/gitlab-ce
    
  • 准备docker-compose.yml文件

version: '3.1'
services:
  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    container_name: gitlab
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.56.112:8929'
        gitlab_rails['gitlab_shell_ssh_port'] = 2224
    ports:
      - '8929:8929'
      - '2224:2224'
    volumes:
      - './config:/etc/gitlab'
      - './logs:/var/log/gitlab'
      - './data:/var/opt/gitlab'
  • 启动容器(需要稍等一小会……)
docker-compose up -d
  • 访问GitLab首页 http://192.168.56.112:8929/

  • 查看root用户初始密码

docker exec -it gitlab cat /etc/gitlab/initial_root_password
  • 第一次登录后需要修改密码, 搞定后,即可像Gitee、GitHub一样使用。
    在这里插入图片描述

Jenkins

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具

Jenkins应用广泛,大多数互联网公司都采用Jenkins配合GitLab、Docker、K8s作为实现DevOps的核心工具。

Jenkins最强大的就在于插件,Jenkins官方提供了大量的插件库,来自动化CI/CD过程中的各种琐碎功能。

在这里插入图片描述
Jenkins最主要的工作就是将GitLab上可以构建的工程代码拉取并且进行构建,再根据流程可以选择发布到测试环境或是生产环境。

一般是GitLab上的代码经过大量的测试后,确定发行版本,再发布到生产环境。

CI/CD可以理解为:

  • CI过程即是通过Jenkins将代码拉取、构建、制作镜像交给测试人员测试。
    • 持续集成:让软件代码可以持续的集成到主干上,并自动构建和测试。
  • CD过程即是通过Jenkins将打好标签的发行版本代码拉取、构建、制作镜像交给运维人员部署。
    • 持续交付:让经过持续集成的代码可以进行手动部署。
    • 持续部署:让可以持续交付的代码随时随地的自动化部署。

在这里插入图片描述

Jenkins安装

  • 拉取Jenkins镜像
docker pull jenkins/jenkins
  • 编写docker-compose.yml
version: "3.1"
services:
  jenkins:
    image: jenkins/jenkins
    container_name: jenkins
    restart: always
    ports:
      - 8080:8080
      - 50000:50000
    volumes:
      - ./data/:/var/jenkins_home/
      - /usr/bin/docker:/usr/bin/docker
      - /var/run/docker.sock:/var/run/docker.sock
      - /etc/docker/daemon.json:/etc/docker/daemon.json
  • 首次启动会因为数据卷data目录没有权限导致启动失败,设置data目录写权限
chmod -R a+w data/
  • 重新启动Jenkins容器后,由于Jenkins需要下载大量内容,但是由于默认下载地址下载速度较慢,需要重新设置下载地址为国内镜像站
# 修改数据卷中的hudson.model.UpdateCenter.xml文件
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://updates.jenkins.io/update-center.json</url>
  </site>
</sites>
# 将下载地址替换为http://mirror.esuni.jp/jenkins/updates/update-center.json
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url>
  </site>
</sites>
# 清华大学的插件源也可以https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
  • 再次重启Jenkins容器,访问Jenkins(需要稍微等会)

  • 查看密码登录Jenkins,并登录下载插件

docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword

在这里插入图片描述
在这里插入图片描述

  • 选择需要安装的插件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 下载完毕设置信息进入首页(可能会出现下载失败的插件)
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Jenkins入门配置

  • 由于Jenkins需要从Git拉取代码、需要本地构建、甚至需要直接发布自定义镜像到Docker仓库,所以Jenkins需要配置大量内容。

构建任务

准备好GitLab仓库中的项目,并且通过Jenkins配置项目的实现当前项目的DevOps基本流程。

  • 构建Maven工程发布到GitLab(Gitee、Github均可)

在这里插入图片描述

  • Jenkins点击左侧导航新建任务

在这里插入图片描述

  • 选择自由风格构建任务

在这里插入图片描述

配置源码拉取地址

Jenkins需要将Git上存放的源码存储到Jenkins服务所在磁盘的本地

  • 配置任务源码拉取的地址

在这里插入图片描述

  • Jenkins立即构建’

在这里插入图片描述

  • 查看构建工程的日志,点击上述的任务条即可

在这里插入图片描述

可以看到源码已经拉取带Jenkins本地,可以根据第三行日志信息,查看Jenkins本地拉取到的源码。

docker exec -it jenkins /bin/bash

/var/jenkins_home/workspace/shield-test

在这里插入图片描述

配置Maven构建代码

代码拉取到Jenkins本地后,需要在Jenkins中对代码进行构建,这里需要Maven的环境,而Maven需要Java的环境,接下来需要在Jenkins中安装JDK和Maven,并且配置到Jenkins服务。

  • 准备JDK、Maven压缩包通过数据卷映射到Jenkins容器内部
apache-maven-3.6.3-bin.tar.gz
jdk-8u231-linux-x64.tar.gz

在这里插入图片描述

  • 解压压缩包,并配置Maven的settings.xml
<!-- 阿里云镜像地址 -->
<mirror>  
    <id>alimaven</id>  
    <name>aliyun maven</name>  
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>          
</mirror>
<!-- JDK1.8编译插件 -->
<profile>
    <id>jdk-1.8</id>
    <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
    </activation>
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>        
</profile>
  • Jenkins配置JDK&Maven并保存

在这里插入图片描述
在这里插入图片描述

  • 配置Jenkins任务构建代码
package -Dmaven.test.skip=true -pl  java-agent -am

在这里插入图片描述

  • 立即构建测试,查看target下的jar包

在这里插入图片描述

配置Publish发布&远程操作

jar包构建好之后,就可以根据情况发布到测试或生产环境,这里需要用到之前下载好的插件Publish Over SSH。

  • 配置Publish Over SSH连接测试、生产环境

在这里插入图片描述

  • 配置任务的构建后操作,发布jar包到目标服务

在这里插入图片描述

  • 立即构建任务,并去目标服务查看
    在这里插入图片描述
  • 31
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值