分享
  1. 首页
  2. 文章

gitlab-1

wwq1988 · · 1359 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

简单总结部署gitlab docker 的流程(针对ubuntu 16.04)

一 准备

1. 安装 docker

2. 安装gitlab-ce

docker run -d --privileged -p 443:443 -p 80:80 --name gitlab --restart always -v /root/gitlab/config:/etc/gitlab -v /root/gitlab/logs:/var/log/gitlab -v /root/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest

挂载目录可以修改

3 安装gitlab-runner

docker run -d --name gitlab-runner --add-host gitlab.test.com:192.168.1.129 --restart always -v /root/gitlab/runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest

等下register时候需要填写ce的url,需要域名解析,可以使用

1) --add-host reg.gc.com:192.168.1.129 (域名:ip格式,这里我使用了主机Ip,因为我测试机器只部署了这个程序,你可以改用容器ip)

2) --link gitlab:gitlab.test.com

3) 使用自定义network

二 环境

1. vi /root/gitlab/config/gitlab.rb

修改 external_url 成 "http://gitlab.test.com"

2. docker exec -it $(docker ps |grep runner| awk '{print 1ドル}') /bin/bash

gitlab-runner register --locked=false --docker-extra-hosts=gitlab.test.com:192.168.1.129

如果是add-host方式的话,需要添加 --docker-extra-hosts=gitlab.test.com:192.168.1.129,否则不需要


1)出现Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):

输出gitlab的url,域名写你关联的(如gitlab.test.com)

2)出现 Please enter the gitlab-ci token for this runner

去gitlab 页面查看runner的token

3)出现Please enter the gitlab-ci description for this runner

runner 的名字

4)出现Please enter the gitlab-ci tags for this runner (comma separated):

输入 runner过滤用的tag,.gitlab-ci.yml用这个来选择runner

5)出现 Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:

这里我选择了docker

6) 出现Please enter the Docker image (eg. ruby:2.1):

选择你需要的镜像(如golang:latest)

三 简单测试

访问http://localhost:80,修改root的账号密码后,创建一个project,比如叫test

git clone 下来

添加一个叫test.go

package main

import "fmt"

func main() {

fmt.Println("hello world")

}

添加一个叫.gitlab-ci.yml

before_script:

- export GO_PROJECT_NAMESPACE="$GOPATH/src/gitexample.com/$CI_PROJECT_NAMESPACE"

- echo $GO_PROJECT_NAMESPACE

- mkdir -p $GO_PROJECT_NAMESPACE

- ln -sf $(pwd) $GO_PROJECT_NAMESPACE

- export GO_PROJECT_PATH="$GO_PROJECT_NAMESPACE/$CI_PROJECT_NAME"

- echo $GO_PROJECT_PATH

- cd $GO_PROJECT_PATH

stages:

- build

build:

stage: build

tags:

- runnertest

script:

- go build

上面的runnertest就是之前填入的runner tag

git add test.go .gitlab-ci.yml

git commit -m 'test'

git push

后就可以看到job 在running,进去可以看到详细的执行日志,

四 总结

1 遇到问题

1) ce和runner以及runner 启动的容器的互联问题

解决办法如上

2) gitlab-runner register后runner状态locked

--locked=false

3) 触发pipeline 后,状态stuck ,提示找不到runner

需要在yml里面的每一个stage指定对应的runner的tag,否则stage会使pipeline stuck

2 对于docker pull很慢,可以搭建个镜像仓库,比如harbor或者官方的registry


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:wwq1988

查看原文:gitlab-1

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
1359 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏