Ubuntu Docker 安装和配置 GitLab CI 持续集成
相关文章:
目的:在 Ubuntu 服务器上,使用 Docker 安装和配置 GitLab Runner,搭建 GitLab CI 持续集成环境。
服务器版本 Ubuntu 16.04 LTS。
安装命令:
$ docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
参数说明:
--d: 设置容器后台运行--name:容器名称--restart always:每次启动容器就重启 gitlab-runner--v: 共享目录挂载(如果是 Mac OSX 系统,需要把/srv改为/Users/Shared)
安装好之后,可以使用docker ps查看容器是否在运行,接着我们进入容器:
$ docker exec -it gitlab-runner gitlab-runner register
gitlab-runner register是进入gitlab-runner容器的执行命令,用于注册和初始化gitlab-runner。
下面是我的示例配置:

我们也可以编辑vim /srv/gitlab-runner/config/config.toml,手动修改配置:
concurrent = 1
check_interval = 0
[[runners]]
name = "my-runner"
url = "http://40.125.206.47"
token = "b6ac044b57cbb22073b95dd384e517"
executor = "docker"
[runners.docker]
tls_verify = false
image = "microsoft/dotnet:latest"
privileged = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
[runners.cache]
gitlab-ci token需要用root账号登陆 GitLab,才能看到(/admin/runners):

配置好之后,我们就可以在 GitLab 中看到 GitLab Runner 了,示例:

然后点击修改,添加我们需要应用 GitLab Runner 的 Project 项目,示例(点击Enable启用):

下面我们就可以为hwapp项目(hwapp使用 ASP.NET Core 2.0 创建),添加.gitlab-ci.yml配置文件了(用于执行 CI 的脚本文件),简单配置(用于还原程序包和构建项目):
stages:
- build
build_job:
stage: build
script:
- dotnet restore
- dotnet build
关于.gitlab-ci.yml的语法,可以看一下之前的文章,或者查看:
把.gitlab-ci.yml提交到 GitLab,然后我们就可以看到执行结果了:

执行是失败的,我们点击进入详情,就可以看到整个的执行过程:

microsoft/dotnet:latest是我们一开始配置 GitLab Runner 填写的 Docker Image,并且 Runner executor 选择的是docker,也就是说 GitLab Runner 的构建环境是docker,并且默认使用的镜像是microsoft/dotnet:latest,由此再进行创建相应容器,并在其容器中执行 CI 脚本,从上面的执行过程,我们就可以看出来了。
需要注意的是,GitLab Runner 配置的 Docker Image,最好是我们自定义构建的 Image 镜像,这样我们执行 CI 脚本环境,会更加丰富。
根据错误信息,我们修改下对应代码,重新提交到 GitLab,可以看到这次是构建成功的:

大概就记录这些,接下来还需要继续完善,比如:
- GitLab CI & ASP.NET Core 2.0 发布和部署:使用 CI 脚本编译程序,然后将编译后的文件传输到服务器上,最后运行程序,完成发布和部署。
- GitLab CI & ASP.NET Core 2.0 & Docker 发布和部署:项目中添加
Dockerfile文件,使用 CI 脚本构建自定义镜像,然后在服务器上拉取并创建相应容器,最后启动容器,完成发布和部署。
参考资料:
- 用 GitLab CI 进行持续集成(推荐)
- 使用 GitLab-CI 来自动创建 Docker 镜像
- 使用 Gitlab CI & Docker 搭建 CI 环境(推荐)
- Run GitLab Runner in a container(官方)
- Registering Runners(官方)
- Getting started with GitLab CI(官方)
Ubuntu Docker 安装和配置 GitLab CI 持续集成的更多相关文章
- docker安装与配置gitlab详细过程
docker安装与配置gitlab详细过程 1.打开网易镜像中心 https://c.163yun.com/hub#/m/home/ 2.搜索gitlab,获取下载地址.例如:docker pull ...
- Gitlab CI 持续集成的完整实践
Gitlab CI 持续集成的完整实践 本着公司团队初创,又在空档期想搞点事情,搭建了私有Gitlab的契机,顺便把持续集成搭建起,实现了对Python服务端代码的单元测试.静态代码分析和接口测试的持 ...
- Git Hooks、GitLab CI持续集成以及使用Jenkins实现自动化任务
Git Hooks.GitLab CI持续集成以及使用Jenkins实现自动化任务 前言 在一个共享项目(或者说多人协同开发的项目)的开发过程中,为有效确保团队成员编码风格的统一,确保部署方式的统一, ...
- GitLab CI持续集成配置方案
目录 1. 持续集成介绍 1.1 概念 1.2 持续集成的好处 2. GitLab持续集成(CI) 2.1 简介 2.2 GitLab简单原理图 2.3 GitLab持续集成所需环境 2.4 需要了解 ...
- Gitlab CI持续集成 - GitLab Runner 安装与注册
GitLab Runner安装 需要添加gitlab官方库: # For Debian/Ubuntu/Mint curl -L https://packages.gitlab.com/install/ ...
- GitLab CI持续集成配置方案(补)
上篇文章介绍了GitLab CI的持续集成配置方法,本篇文章将主要介绍NUnit的持续集成和遇到的一些坑 1.NUnit单元测试持续集成 下载NUnit.3.4.1.msi,https://githu ...
- Ubuntu 简单安装和配置 GitLab
使用的 Ubuntu Server 16.04 LTS 版本,服务器托管在 Azure 上,用的 1 元试用 1 个月服务器订阅(1500 元额度). 安装命令(推荐使用): curl -sS htt ...
- ubuntu 安装和配置 GitLab
一.概述 GitLab 是一个基于 Web 的开源 Git 软件仓库管理器,用 Ruby 编写,包括 wiki,问题管理,代码审查,监控以及持续集成和部署.它使开发人员能够创建,审查和部署他们的项目. ...
- Jenkins+Gitlab搭建持续集成(CI)环境
利用Jenkins+Gitlab搭建持续集成(CI)环境 Permalink: 2013-09-08 22:04:00 by hyhx2008in intern tags: jenkins gitla ...
随机推荐
- Udp实现消息的发送和接收、以及图片的上传
//Udp实现消息的发送和接收 import java.io.IOException; import java.net.DatagramPacket; import java.net.Datagram ...
- vue 自定义组件
1.Vue.component('component-test', { props:{}, data:function(){ return{} }, mounted:function(){}, com ...
- Centos 7部署大众点评CAT(一)——单服务器部署
前一篇拙作上传的时间已经过去2个月了,中间并不是闲着...主要是忙着学习各种组件的安装,写了几篇安装心得存在硬盘里. 最近尝试了点评开源的CAT监控平台的安装,并且希望能够引入到工作中.在部署实践的过 ...
- 《javascript设计模式与开发实践》读书笔记之函数,this,闭包
一.函数基本理论 function compare(val1,val2){ return val1 - val2; }var result = compare(5,10); 1,函数的定义没什么意义, ...
- Reverse Integer - 反转一个int,溢出时返回0
Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, retur ...
- SpringMVC原理及非注解配置详解
1. Spring介绍 Spring MVC是Spring提供的一个强大而灵活的web框架.借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单. 这些控制器 ...
- 2017年1月1日 App Store中的所有应用都必须启用 App Transport Security安全功能
2017年1月1日 App Store中的所有应用都必须启用 App Transport Security安全功能,否则极有可能被拒! 在WWDC 2016开发者大会上,苹果宣布了一个最后期限:到20 ...
- 配置PLSQL,提升工作效率
界面模板的配置: 方便用户快速点击需要的功能.如打开SQL Window 1.打开customize,用户自定义Toolbars对话框. 2.在Commands命令标签页,选中要添加的命令,拖动到工具 ...
- Hibernate一对多实例
本文向大家介绍Hibernate实例一对多的情况,可能好多人还不了解Hibernate实例一对多,没有关系,下面通过一个实例来帮助您理解Hibernate实例一对多,希望本文能教会你更多东西. 先看由 ...
- win10 vmware下Linux系统联网
本来,这个问题网上资源很多的,但是就因为多,就变得杂了,对于许多新手,并不理解为啥,故记录下来方便以后使用.此处我采用配置VWmare虚拟网关(上学期刚刚学计算机网络,正好可以复习下).关于虚拟机下L ...