使用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

到此就成功了

原文地址:https://www.cnblogs.com/chengyangyang/p/10314514.html