使用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搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇 ...
随机推荐
- PTA甲级—链表
1032 Sharing (25分) 回顾了下链表的基本使用,这题就是判断两个链表是否有交叉点. 我最开始的做法就是用cnt[]记录每个节点的入度,发现入度为2的节点即为答案.后来发现这里忽略了两个链 ...
- 2019牛客暑期多校训练营(第五场)H.subsequence 2(拓扑)
题意:给你一个字符串的长度n 现在询问了m*(m-1)/2次 每次都可以询问两个字符 然后 会告诉你只留下这两个字符后 字符串的样子 现在问你能不能还原字符串 如果能就输出字符串 否则输出-1 思路: ...
- 2019牛客暑期多校训练营(第八场)B Beauty Values && C CDMA
B题题意: 题目 给你n个数,让你把这一个序列中的所有子区间的Beauty Values加起来,Beauty Values是子区间内有几个不同的数 题解: 肯定不会是暴力,所以我们就要在各元素的位置上 ...
- hdu3480 Division
Problem Description Little D is really interested in the theorem of sets recently. There's a problem ...
- Educational Codeforces Round 94 (Rated for Div. 2) B. RPG Protagonist (数学)
题意:你和你的随从去偷剑和战斧,你可以最多可以拿\(p\)重的东西,随从可以拿\(f\)重的东西,总共有\(cnt_{s}\)把剑,\(cnt_{w}\)把战斧,每把剑重\(s\),战斧重\(w\), ...
- CQRS Event Sourcing介绍
什么是CQRS模式? CQRS是Command and Query Responsibility Segregation的缩写,直译就是命令与查询责任分离的意思. 命令会改变对象的状态,但不返回任何数 ...
- KVM Pass-through 上部署 MiniSMB HurricaneII
KVM Pass-through 上部署 MiniSMB HurricaneII 免费网络测试,是一款专门用于测试无线控制器, 智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具 ...
- hlt instruction with IF=0
mov AH, 2DH ;写时间. mov DH, 0 ;此时为0秒. int 21H ;写入系统. 遇到了这个问题. 原因是以及在保护模式了.保护模式下中断机制发生了很大的变化,原来的中断向量表被I ...
- C++的memset
1. 需要的头文件 C中为<memory.h> 或 <string.h> C++中为<cstring> void * memset ( void * ptr, in ...
- springboot demo(一)快速开始
快速入门 maven构建项目 1.访问http://start.spring.io/ 2.选择构建工具Maven Project.Spring Boot版本2.26以及一些工程基本信息,点击" ...