170 lines
3.7 KiB
Markdown
170 lines
3.7 KiB
Markdown
|
> 本文作者:丁辉
|
|||
|
|
|||
|
# Docker部署Gitlab
|
|||
|
|
|||
|
[企业版官网网址](https://docs.gitlab.com/ee/install/docker.html)
|
|||
|
|
|||
|
> 部署开源版
|
|||
|
>
|
|||
|
> 例:本地 IP 为 192.168.1.10
|
|||
|
|
|||
|
## 部署Gitlab
|
|||
|
|
|||
|
1. 启动容器
|
|||
|
|
|||
|
> 这里也可以通过 `--hostname 192.168.1.10` 指定 Clone 地址,Gitlab会通过读取本地主机名作为默认的 Clone 地址
|
|||
|
|
|||
|
```bash
|
|||
|
docker run -itd \
|
|||
|
--restart always \
|
|||
|
-p 80:80 \
|
|||
|
-p 222:22 \
|
|||
|
-u root \
|
|||
|
-v $PWD/data/log:/var/log/gitlab \
|
|||
|
-v $PWD/data/opt:/var/opt/gitlab \
|
|||
|
-v $PWD/data/etc:/etc/gitlab \
|
|||
|
--privileged=true \
|
|||
|
--name=gitlab \
|
|||
|
gitlab/gitlab-ce:latest
|
|||
|
```
|
|||
|
|
|||
|
2. 进入容器查看 root 初始密码
|
|||
|
|
|||
|
```bash
|
|||
|
docker exec -it gitlab bash
|
|||
|
```
|
|||
|
|
|||
|
```bash
|
|||
|
cat /etc/gitlab/initial_root_password
|
|||
|
```
|
|||
|
|
|||
|
> 访问 192.168.1.10:80
|
|||
|
|
|||
|
3. 修改 SSH Clone 地址(进入容器内执行)
|
|||
|
|
|||
|
```bash
|
|||
|
cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak
|
|||
|
vi /etc/gitlab/gitlab.rb
|
|||
|
```
|
|||
|
|
|||
|
写入如下内容
|
|||
|
|
|||
|
```bash
|
|||
|
external_url "http://192.168.1.10:80" #http对外clone地址
|
|||
|
gitlab_rails["gitlab_ssh_host"] = "192.168.1.10" #ssh对外clone地址
|
|||
|
gitlab_rails["gitlab_shell_ssh_port"] = 222 #ssh对外clone端口
|
|||
|
```
|
|||
|
|
|||
|
4. 重启服务
|
|||
|
|
|||
|
```bash
|
|||
|
gitlab-ctl reconfigure
|
|||
|
```
|
|||
|
|
|||
|
## 安装Gitlab-runner
|
|||
|
|
|||
|
1. 启动容器
|
|||
|
|
|||
|
```bash
|
|||
|
docker run -itd --name gitlab-runner \
|
|||
|
--restart always \
|
|||
|
--privileged=true \
|
|||
|
-v $PWD/data/gitlab-runner-config:/etc/gitlab-runner \
|
|||
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|||
|
-v /usr/local/bin/docker:/usr/bin/docker \
|
|||
|
gitlab/gitlab-runner:latest
|
|||
|
```
|
|||
|
|
|||
|
2. 创建 Runner 实例获取 Token
|
|||
|
|
|||
|
点击Admin Area(管理员设置) > 点击CI/CD > 点击Runners > 点击New project runner > 选择Linux > 填写一个Tags > 点击Create runner
|
|||
|
|
|||
|
3. 进入容器
|
|||
|
|
|||
|
```bash
|
|||
|
docker exec -it gitlab-runner bash
|
|||
|
```
|
|||
|
|
|||
|
4. 开始注册 Runner
|
|||
|
|
|||
|
```bash
|
|||
|
gitlab-ci-multi-runner register
|
|||
|
```
|
|||
|
|
|||
|
过程如下
|
|||
|
|
|||
|
```bash
|
|||
|
Runtime platform arch=amd64 os=linux pid=106 revision=6e766faf version=16.4.0
|
|||
|
Running in system-mode.
|
|||
|
|
|||
|
Enter the GitLab instance URL (for example, https://gitlab.com/):
|
|||
|
http://192.168.1.10 #Gitlab地址
|
|||
|
Enter the registration token:
|
|||
|
******** #刚刚获取到的Token
|
|||
|
Verifying runner... is valid runner=Te1gEas2d
|
|||
|
Enter a name for the runner. This is stored only in the local config.toml file:
|
|||
|
[f94c7a9b1272]: test #名称
|
|||
|
Enter an executor: docker+machine, instance, kubernetes, docker-windows, shell, virtualbox, docker-autoscaler, custom, docker, parallels, ssh:
|
|||
|
shell #输入一个执行器
|
|||
|
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
|
|||
|
|
|||
|
Configuration (with the authentication token) was saved in "/etc/gitlab-runner/config.toml"
|
|||
|
```
|
|||
|
|
|||
|
5. 开始测试
|
|||
|
|
|||
|
在测试仓库内创建 `.gitlab-ci.yml` 文件编写内容
|
|||
|
|
|||
|
```yml
|
|||
|
stages:
|
|||
|
- test
|
|||
|
build-test:
|
|||
|
stage: test
|
|||
|
tags:
|
|||
|
- test
|
|||
|
script:
|
|||
|
- echo "Hello world"
|
|||
|
```
|
|||
|
|
|||
|
6. 查看结果
|
|||
|
|
|||
|
进入测试仓库 > 点击Build > 点击Pipelines > 查看到 `passed` 即为成功可点击进去查看
|
|||
|
|
|||
|
## 忘记密码
|
|||
|
|
|||
|
1. 进入容器
|
|||
|
|
|||
|
```bash
|
|||
|
docker exec -it gitlab /bin/bash
|
|||
|
```
|
|||
|
|
|||
|
2. 进⼊控制台(需要等待一段时间)
|
|||
|
|
|||
|
```bash
|
|||
|
gitlab-rails console -e production
|
|||
|
```
|
|||
|
|
|||
|
3. 查询root⽤户
|
|||
|
|
|||
|
```bash
|
|||
|
user=User.where(id:1).first
|
|||
|
```
|
|||
|
|
|||
|
4. 设置密码
|
|||
|
|
|||
|
```bash
|
|||
|
user.password='password'
|
|||
|
```
|
|||
|
|
|||
|
5. 保存退出
|
|||
|
|
|||
|
```bash
|
|||
|
user.save!
|
|||
|
exit
|
|||
|
```
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|