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 脚本构建自定义镜像,然后在服务器上拉取并创建相应容器,最后启动容器,完成发布和部署。
本文转自田园里的蟋蟀博客园博客,原文链接:http://www.cnblogs.com/xishuai/p/ubuntu-install-gitlab-runner-with-docker.html,如需转载请自行联系原作者

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
docker基础入门之二
一、docker文件系统: linuxFS包括boot file system 和 root file system boot file system (bootfs),包含bootloader和kernel,在系统启动完成后,kernel滞留内存,bootfs解除挂载; root file system(rootfs),包括类似/bin,/usr, /lib等目录,这些和kernel无关,这也是不同linux发行版本的差异所在; Linux FSLinux FS in Docker 传统Linux启动时,将rootfs设置为readonly并检查完整性,然后设置成read-write Docker在启动container的时候,也是把rootfs设置为readonly,然后通过aufs把一个read-write的文件系统挂载到rootfs之上,并且把下层文件系统设置成readonly,这样构建一个完整的操作系统; 二、Layer FS 对于每层readonly的FS,在docker中成为image 对于顶上read-write的FS,成为container 对于...
- 下一篇
Kubernetes概念介绍和v1版本部署过程
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/48719923 简介: k8s一个开源的,跨主机管理容器应用集群的编排系统,为应用提供了基础的部署、维护和扩缩容机制。 编排:跨Docker主机同一管理容器集群。 目的 简化开发和运维容器集群的工作。 让开发和运维能把这个系统当一台电脑看待。 特点:没有资源调度算法,只关注容器的管理。 核心概念: Cluster,即集群:虚拟机或者物理机的一组集合,运行着Kubernetes ETCD 一个分布式强一致性的key/value存储 可理解为一个存储k8s信息的数据库 Node 工作节点,运行Master节点交付的任务 能运行一个或多个Pods 运行的组件 Kubelet 管理容器的守护进程 管理Docker主机来启动容器的管理程序 定期从etcd获取分配到本机的pod信息,启动或停止容器 接收apiserver的HTTP请求,汇报pod的运行状态 Proxy 服务发现(IP寻址) 定期从etcd获取所有的service根据servi...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度