安装
此处采用的是 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 的公钥位置
若没有公钥则按上面方式即可