使用gitlab构建基于docker的持续集成(二)
使用gitlab构建基于docker的持续集成(二)
Centos配置gitlab镜像并且启动
在本机上创建目录结构,然后上传到虚拟机去运行,使用的软件为Xshell,Xftp,记得把CA证书带上。
目录结构:
gitlab
	config
		ssl
			gitlab.luna.cn.crt
			gitlab.luna.cn.key
	logs
	docker-compose.yml
docker-compose.yml文件,要说明的是这里的环境变量配置,是可以使用gitlab配置文件中的配置的,不过后续使用配置文件也可以。
version: '3'
services:
    gitlab:
      image: 'twang2218/gitlab-ce-zh:10.6.2'
      restart: unless-stopped
      hostname: 'gitlab.luna.cn'
      container_name: gitlab1062
      environment:
        TZ: 'Asia/Shanghai'
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://gitlab.luna.cn/'
          registry_external_url 'https://gitlab.luna.cn'
          gitlab_rails['time_zone'] = 'Asia/Shanghai'
          # gitlab_rails['smtp_enable'] = true
          # gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
          # gitlab_rails['smtp_port'] = 465
          # gitlab_rails['smtp_user_name'] = "xxxx@xx.com"
          # gitlab_rails['smtp_password'] = "password"
          # gitlab_rails['smtp_authentication'] = "login"
          # gitlab_rails['smtp_enable_starttls_auto'] = true
          # gitlab_rails['smtp_tls'] = true
          # gitlab_rails['gitlab_email_from'] = 'xxxx@xx.com'
      ports:
        - '80:80'
        - '443:443'
        - '1022:22'
      volumes:
        - ./data:/var/opt/gitlab
        - ./config:/etc/gitlab
        - ./logs:/var/log/gitlab
上传到/root文件夹下

Xshell中运行docker-compose up,等待....
Centos配置防火墙
我列出配置需要用到的命令,主要打开http,https,docker-registry这几个服务和1022端口。
1022端口是为了ssh使用的。
firewall-cmd --list-ports #查看打开的端口
firewall-cmd --list-services #查看打开的服务
firewall-cmd --get-services  #查看可以打开的服务
firewall-cmd --add-service=xxx --permanent  #添加服务
firewall-cmd --add-port=xx/tcp --permanent #添加端口
firewall-cmd --reload      #打开操作之后要重载
windows上访问gitlab
域名为: gitlab.luna.cn 能访问,说明一切正常。
然后需要做的是:
1.需要创建一个管理员密码
2.管理员账号为root,用设置的密码登录。
3.如果第一次使用gitlab,你可以看看每个菜单,如果没有兴趣,就可以关闭了。
Centos上配置gitlab-runner
gitlab-runner是一个很大的坑,我不知道我能不能说的清楚,不对的地方,希望大家指正。
安装官方的说法,runner需要先注册,从而让gitlab认识这个runner,从而触发runner运行job。
这里我使用的是runner的docker镜像。
1.首先创建一个文件夹用来放runner的配置文件,这里是/root/gitlab-runner。
2.然后是启动runner镜像,执行注册。注册的参数除了第一个和第二个参数之外,其他参数都可以后面配置,不用太纠结。
  #运行镜像
  docker run -d --name gitlab-runner-bate --restart always \
  -v /var/run/docker.sock:/var/run/docker.sock \#这个配置可以让runner联通本机docker
  -v /root/gitlab-runner/config:/etc/gitlab-runner \
  gitlab/gitlab-runner:latest
  #执行注册
   docker exec -it gitlab-runner-bate gitlab-runner register
3.注册之后,目录结构应该是这样的,然后配置文件应该是这样的。
gitlab-runner
  config
     config.toml
  docker-compose.yml
config.toml
concurrent = 1
check_interval = 0
[[runners]]
  name = "test"
  url = "http://gitlab.luna.cn/"
  token = "040a9c35d32e1c9a912c006c8a10a6"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "docker:stable"
    privileged = false
    disable_cache = false
    volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
    shm_size = 0
  [runners.cache]
4.runner是否配置成功,可以用管理员登录gitlab去查看,成功的话,是可以看到的。
5.然后创建一个docker-compose来启动,就不用敲那么长docker run命令了。
docker-compose.yml
version: '3'
services:
    runner:
      image: 'gitlab/gitlab-runner:latest'
      container_name: gitlab-runner
      restart: always
      volumes:
        - ./config:/etc/gitlab-runner
        - /var/run/docker.sock:/var/run/docker.sock
最后贴几个官方文档给大家参考,也给自己做下备忘。
使用gitlab构建基于docker的持续集成(二)的更多相关文章
- 使用gitlab构建基于docker的持续集成(三)
		使用gitlab构建基于docker的持续集成(三) gitlab docker aspnetcore 持续集成 构建发布思路: aspnetcore 下的dockerfile编写 发布docker- ... 
- 使用gitlab构建基于docker的持续集成(一)
		使用gitlab构建基于docker的持续集成(一) gitlab docker aspnetcore 持续集成 开篇 整体环境规划 准备工作 CA证书 虚拟机系统:安装Centos7.3 3.设置C ... 
- 【持续集成】GitLab CI + Docker 实现持续集成
		GitLab CI + Docker 实现持续集成 一.持续集成(Continuous Integration, CI)的基本概念 概述 在传统软件的开发中,代码的集成工作通常是在所有人都将工作完成后 ... 
- Docker+Jenkins持续集成环境(5): android构建与apk发布
		项目组除了常规的java项目,还有不少android项目,如何使用jenkins来实现自动构建呢?本文会介绍安卓项目通过jenkins构建的方法,并设计开发一个类似蒲公英的app托管平台. andro ... 
- 学习笔记——Maven实战(四)基于Maven的持续集成实践
		Martin的<持续集成> 相信很多读者和我一样,最早接触到持续集成的概念是来自Martin的著名文章<持续集成>,该文最早发布于2000年9月,之后在2006年进行了一次修订 ... 
- Docker+Jenkins持续集成环境(4):使用etcd+confd实现容器服务注册与发现
		前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的 ... 
- 持续集成之Jenkins+Gitlab实现持续集成 [二]
		持续集成之Jenkins+Gitlab实现持续集成 [二] 项目:使用git+jenkins实现持续集成 开始构建 General 源码管理 我们安装的是Git插件,还可以安装svn插件 我们将 ... 
- Maven实战(四)——基于Maven的持续集成实践
		Martin的<持续集成> 相信非常多读者和我一样.最早接触到持续集成的概念是来自Martin的著名文章<持续集成>.该文最早公布于2000年9月,之后在2006年进行了一次修 ... 
- Docker+Jenkins持续集成
		Docker+Jenkins持续集成 使用etcd+confd实现容器服务注册与发现 前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇 ... 
随机推荐
- c++bind函数使用
			总述 最近写代码的时候看到代码使用了bind,一个参数绑定的标准库函数.程序是这么写的, speaker_play_routine_ = new boost::thread (boost::b ... 
- BZOJ4668: 冷战 (并查集 + LCA)
			题意:动态给点连边 询问两个点之间最早是在第几个操作连起来的 题解:因为并查集按秩合并 秩最高是logn的 所以我们可以考虑把秩看作深度 跑LCA #include <bits/stdc++.h ... 
- python的re模块一些方法 && Tkinter图形界面设计  && 终止python运行函数  && python读写文件  && python一旦给字符串赋值就不能单独改变某个字符,除非重新给变量赋值
			Tkinter图形界面设计见:https://www.cnblogs.com/pywjh/p/9527828.html#radiobutton 终止python运行函数: 采用sys.exit(0)正 ... 
- hdu 1517   Multiplication Game
			题意: 用整数p乘以2到9中的一个数字.斯坦总是从p = 1开始,做乘法,然后奥利乘以这个数,然后斯坦,以此类推.游戏开始前,他们画一个整数1 < n < 4294967295,谁先到达p ... 
- 洛谷 P1525 关押罪犯  (贪心,扩展域并查集)
			题意:有\(n\)个罪犯,\(m\)对罪犯之间有仇,现在将这些罪犯分到两个监狱里去,问两个监狱里有仇罪犯之间的最大权值最小为多少. 题解:先按边权从大到小排序,然后贪心,边权大的两个罪犯,我们一定要先 ... 
- keras fit_generator 并行
			虽然已经走在 torch boy 的路上了, 还是把碰到的这个坑给记录一下 数据量较小时,我们可直接把整个数据集 load 到内存里,用 model.fit() 来拟合模型. 当数据集过大比如几十个 ... 
- 网络安全知识--PHP代码审计/Web For Pantesters 的 SQL injection
			SQL 注入一般流程 判断有无注入 单引号判断: ?name=root' 对应语句 select * from table where name='root'' 不符合语法规范,报错,说明有注入 an ... 
- 【非原创】LightOj 1248 - Dice (III)【几何分布+期望】
			学习博客:戳这里 题意:有一个 n 面的骰子,问至少看到所有的面一次的所需 掷骰子 的 次数的期望: 第一个面第一次出现的概率是p1 n/n; 第二个面第一次出现的概率是p2 (n-1)/n; 第三个 ... 
- universities
- Codeforces13C–Sequence (区间DP)
			题目大意 给定一个含有N个数的序列,要求你对一些数减掉或者加上某个值,使得序列变为非递减的,问你加减的值的总和最少是多少? 题解 一个很显然的结果就是,变化后的每一个值肯定是等于原来序列的某个值,因为 ... 
