• 使用docker搭建gitlab 服务器 及持续集成


      

      本次使用的docker版本为

      

      

      1.首先需要安装docker.

      2.启动docker后,service docker start  

      3.拉取镜像  docker pull gitlab/gitlab-ce

      4. 启动镜像,并进行端口的映射  (先要创建那三个文件夹   config   logs   data  ,hostname为宿主机ip)    

      docker run -d -p 443:443 -p 80:80 -p 8022:22 --name gitlab --restart always --hostname 192.168.2.82 -v /opt/docker-mapping/gitlab/config:/etc/gitlab -v /opt/docker-mapping/gitlab/logs:/var/log/gitlab -v /opt/docker-mapping/gitlab/data:/var/opt/gitlab      镜像id

      5.然后访问80 端口

      6.如果内存不够,8G左右,启动慢的话,访问就会出现502(本人使用虚拟机分配1G内存,总是502,启动需要6分钟,偶尔能够启动成功)

      和JenKins 持续继承

      docker 安装jenkins ,  

       创建目录  mkdir   jenkins_home

       赋予权限 chown -R 1000 jenkins_hone/ 

       docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v /opt/docker-mapping/jenkins/jenkins_hone:/var/jenkins_home jenkins

       成功之后

       

       端口是8080 进行访问 

      

        


        

        下面进行一个完整的持续集成   springboot + docker + gitlib +jenkins

        1. gitlab和docker 的安装就不介绍了

        2. 首先在服务器上面安装所需要的环境   git    maven   java或者openjava

        3.建议不要使用docker 安装jenkins

          ---安装步骤,在这里我们下载一个war 包     https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.176.1/jenkins.war       或者直接到官网下载  https://jenkins.io/download/

          ----启动 jenkins                   nohup  java -jar jenkins.war --httpPort=8080 &   或者  nohup java -jar jenkins.war --httpPort=9003 >/dev/null 2>/dev/null &

         4.具体的安装就不介绍了,直接从主要的内容开始

          在开始之前首先我们要安装  新增GitLab Plugin  和Maven Integration plugin  插件        这个就不多介绍了

          ①.点击新建任务 

           ② 创建任务的名称,相应的会在服务器上添加这个名称的空间目录

          ③ 输入git 的地址

          ④点击添加,输入git的账号和密码,当然也可以选择其他方式,完成之后并选中

          ⑤选中对应的触发    Build when a change is pushed to GitLab. GitLab webhook URL    这后面我们可以看到一个地址,我们先把这个地址记下来,gitlab中要用到

          ⑥点击高级   点击生成按钮,生成 token  ,这个是重点,重点来了

          ⑦ 点击,选中sheel ,这里面主要自主发挥,可以进行自己想要的发布包方式,只要我们知道,当jenkins触发后,就将相应的代码拉到工作目录中,也就是服务器上面的  /root/.jenkins/workspace/任务名称         目录中。我们的

            脚本就可以从这个目录中取我们需要的包,这时候,不管我们是使用docker还是其他的发布方式,都非常简单了

          

          重点  :就是刚才上面生成的token

                  我使用的是gitlab,如果jenkins和gitlab在一个服务器上面,我们首先需要去掉gitlab上面的禁用,必须是管理员才能进行操作

        点击扳手,进入setting-----》选择network  ---->Outbound requests   ---->选中  Allow requests to the local network from hooks and service    

          

         首先进入到一个项目中,选中  在setting 中找到 Integrations,注意   URL  就是我们刚才需要记住的地址, token 就是刚才生成的toekn

         到这儿就算基本完成了
        

     

        

          

     

        

      

      

      gitlab 设置


    下面一个简单的docker 应用

    Dockerfile

    # 基于Java 8 进行构建
    FROM java:8
    # 映射的端口
    EXPOSE 8096
    # 挂载
    VOLUME /tmp
    # 将jar 文件复制到工作目录中
    ADD target/generator-1.0-SNAPSHOT.jar  /app.jar
    # 修改文件的访问时间
    RUN bash -c 'touch /app.jar'
    # 启动java文件
    ENTRYPOINT ["java","-jar","/app.jar"]

    sheel 脚本

    #!/bin/bash
    echo '开始构建'
    cd /root/.jenkins/workspace/sxmd-springboot/generator/
    echo $PWD
    docker stop sxmd-springboot-generator-8096
    docker rm sxmd-springboot-generator-8096
    docker rmi sxmd-springboot/generator:1.0-SNAPSHOT
    mvn clean
    mvn package -DskipTests
    mvn dockerfile:build
    docker images
    docker run -d --name sxmd-springboot-generator-8096 -p 8096:8096 -v /data/logs/sxmd:/tmp  sxmd-springboot/generator:1.0-SNAPSHOT

    到此就成功了

  • 相关阅读:
    tableView操作数据持久化
    9.0banb以前和9.0以后版本后JSON解析
    数据持久化存储回顾
    解决Xcode会出现的问题
    iview-cli 项目、iView admin 代理与跨域问题解决方案
    将变量做为一个对象的key,push新增进一个数组
    页面加载速度优化的建议
    vue中渲染页面,动态设置颜色
    e.currentTarget与e.target
    iview中tree的事件运用
  • 原文地址:https://www.cnblogs.com/chengyangyang/p/10314514.html
Copyright © 2020-2023  润新知