Gitlab-安装及使用(Gitlab、Gitlab runner)

发布于 2021-08-04  136 次阅读


安装

此处采用的是Docker搭建Gitlab,搭建更便捷

  • 首先先建目录
mkdir /data/gitlab/{config,data,logs.backup} -p
  • 新建文件并编辑

/data/gitlab/config/docker-compose.yml

gitlab:
    image: gitlab/gitlab-ce:13.12.9-ce.0
    container_name: "gitlab"
    mem_limit: 3096m
    restart: always
    hostname: 'demo_gitlab.com'
    environment:
        GITLAB_OMNIBUS_CONFIG: |
            unicorn['worker_timeout'] = 60
            unicorn['worker_processes'] = 3
            unicorn['worker_memory_limit_min'] = "200 * 1 << 20"
            unicorn['worker_memory_limit_max'] = "300 * 1 << 20"
            sidekiq['concurrency'] = 10
            gitlab_rails['backup_archive_permissions'] = 0644
            gitlab_rails['backup_path'] = "/data/gitlab-backup"

            gitlab_rails['backup_keep_time'] = 1296000
            external_url 'https://192.168.137.161:8443'
            gitlab_rails['gitlab_shell_ssh_port'] = 2222
            gitlab_rails['time_zone'] = 'Asia/Shanghai'
            nginx['redirect_http_to_https'] = true
            letsencrypt['enable'] = false
            nginx['ssl_certificate'] = "/etc/gitlab/nginx.pem"
            nginx['ssl_certificate_key'] = "/etc/gitlab/nginx.key"
            # Add any other gitlab.rb configuration here, each on its own line
    ports:
        - '8443:8443'
        - '2222:22'
    volumes:
        - ./data:/var/opt/gitlab
        - ./logs:/var/log/gitlab
        - ./config:/etc/gitlab
        - ./backup:/data/gitlab-backup

参考:https://blog.51cto.com/191226139/2362894

然后在该文件目录下,新建自签名的证书:(最好手动生成证书)https://www.jianshu.com/p/4111534b339f

sudo openssl req -new -x509 -days 36500 -nodes -out config/nginx.pem \
         -keyout config/nginx.key -subj "/C=US/CN=gitlab/O=gitlab.com"

最后再该目录下启动 docker:

sudo docker-compose up -d

等两分钟,初始化完了,打开浏览器:https://192.168.137.161:8443

忽略自签证书警告,然后 F5 刷新:

搞定了,进去初始化 root 管理员的密码,然后用 root/刚才密码登陆试试。一切正常后就用 "-d" 参数重新运行 docker-compose up 命令,让它常驻后台,自动启动,开始正常使用。

上面初始化管理员密码后,配置好网站,记得还是正常注册个非管理员身份去使用,网站设置好就少用管理员登陆。

Q:用 https 的方式 git clone 仓库提示证书问题?

git config --global http.sslVerify "false"

运行上面命令即可屏蔽自签证书的验证。

Q3:怎么改端口?

想改端口,要保证 compose 文件中的 external_url 部分和下面的端口内外映射保持一致,不能内外端口不一致,也要避免下面的端口和上面的 external_url 不匹配。

Q4:怎么备份?

备份或者迁移可以把 config / data 两个目录拷走就行。经常热备份的话,最好还是登陆到容器内用 gitlab-raker 进行标准备份。

安装gitlab-runner

创建工作目录

mkdir /data/gitlab-runner/config -p

编写docker-compose.yml文件

文件:/data/gitlab-runner/docker-compose.yml
内容:
gitlab-runner:
  image: gitlab/gitlab-runner:v14.1.0
  restart: always
  container_name: gitlab-runner
  privileged: true
  volumes:
    - ./config:/etc/gitlab-runner
    - /var/run/docker.sock:/var/run/docker.sock         #将宿主机的docker.socke映射进gitlab-runner内

docker-compose up -d 执行

注册:

地址和token都可以从gitlab web页面获取

# 注册Runner信息到gitlab
docker exec -it gitlab-runner gitlab-runner register
# 输入 GitLab 地址
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
https://192.168.137.161:8443/

# 输入 GitLab Token
Please enter the gitlab-ci token for this runner:
wifXkVkffm5pJp5KesmX

# 输入 Runner 的说明
Please enter the gitlab-ci description for this runner:(可以为空)

# 设置 Tag,可以用于指定在构建规定的 tag 时触发 ci
Please enter the gitlab-ci tags for this runner (comma separated):demo_cicd,docker_cicd

# 这里选择 true ,可以用于代码上传后直接执行(根据版本,也会没有次选项)
Whether to run untagged builds [true/false]: true

# 这里选择 false,可以直接回车,默认为 false(根据版本,也会没有次选项)
Whether to lock Runner to current project [true/false]:
false

# 选择 runner 执行器
Please enter the executor: virtualbox, docker+machine, parallels, shell, ssh, docker-ssh+machine, kubernetes, docker, docker-ssh:

由于gitlab是配置了证书的,所以gitlab-runner注册时需要加上认证的选项 --tls-ca-file=gitlab的公钥位置

若没有公钥则按上面方式即可