概述
[GitLab is The DevSecOps Platform that empowers organizations to deliver software faster, more efficiently, while strengthening security and compliance.]
解释:gitlab是一个集开发/安全/运行一体的平台,能够帮助企业组织更快,更高效的交付软件产品,同时更加安全与合规则。
本篇文章用于指导通过docker搭建私有仓库适用于团队间通过git管理代码,文档等,提升团队协作效率。
环境准备
- macos系统|linux|windows均可,本文采用macos
- docker-desktop(已包含docker-compose)
硬件要求
CPU
- 建议4核
RAM
- 建议8GB RAM
安装
GitLab Docker 镜像这里介绍2种,请先确保本地已经安装了docker,下载安装请参考: www.docker.com/ 目前最新的docker deskop已经包含了docker-compose
!!!需要特别注意:安装目录最好为英文或者拼音字符,不要含有中文字符,否则会存在访问不了的情况
- 使用 Docker 引擎
- 使用 Docker-compose
1.docker引擎安装gitlab
- docker deskop可视化界面拉取镜像
-
docker 命令行拉取镜
- 打开terminal即命令提示符执行
docker pull gitlab/gitlab-ce:latest - 拉取成功后,在deskop桌面点击images即可看到下载好的gitlab-ce镜像
- 打开terminal即命令提示符执行
-
设置运行配置(端口及挂载目录)
注意:端口请填写0-65535之间的数字,映射目录根据自身诉求进行填写,容器内的端口暂时无法修改,如若需要更改容器的端口,建议使用命令行进行启动(如端口9980)
docker run --detach\
-p 9943:443 -p 9980:9980 -p 9922:22\
--name gitlab\
--restart always\
-v /Users/chentangqi/Documents/mac_install_app/develop/gitlab-docker/config:/etc/gitlab\
-v /Users/chentangqi/Documents/mac_install_app/develop/gitlab-docker/logs:/var/log/gitlab\
-v /Users/chentangqi/Documents/mac_install_app/develop/gitlab-docker/data:/var/opt/gitlab\
gitlab/gitlab-ce:latest
2.docker-compose安装gitlab
- 在任意目录下建议你自己想安装gitlab目录下,新建docker-compose.yml文件,内容如下:
version: '3.6'
services:
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'gitlab.admin.com'
ports:
- '9980:9980'
- '9443:443'
- '9922:22'
volumes:
- '/home/gitlab-docker/config:/etc/gitlab'
- '/home/gitlab-docker/logs:/var/log/gitlab'
- '/home/gitlab-docker/data:/var/opt/gitlab'
- version 表示版本
- services 表示服务
- web/image 表示镜像
- web/restart 表示启动方式,always表示自启动
- web/hostname 表示运行的域名,如没有通过/etc/hosts内配置,则使用ip访问
- web/ports 表示映射端口列表
- web/volumes 表示目录挂载
- 在新建docker-compose.yml文件所在目录打开terminal即命令提示符执行
docker-compose up -d
3. 查看当前gitlab运行的容器(容器名称通过此确认)
- docker deskop可视界面操作
- docker 命令执行
docker ps
4.修改运行配置
gitlab容器正常运行成功后,直接打开页面访问http://localhost:9980 会发现访问不了的情况即不工作,如若正常直接查看[5. 初始化root账户]
原因:容器启动时设置的容器映射端口不是80,一般情况我们是默认80,但有时需要根据自身需要调整,如本篇文档调整成了9980
出现访问不了情况,不要着急,需要在gitlab运行的容器里继续修改如下配置即可 特别说明【external_url 表示通过宿主机器访问至容器内的gitlab 主机+端口】
1)进入容器
docker exec -it gitlab /bin/bash
注意:容器名称要写正确,否则无法正常进入
2)修改配置文件/etc/gitlab/gitlab.rb
- vi /etc/gitlab/gitlab.rb
- 添加如下内容:
#gitlab访问地址
external_url 'http://192.168.110.138:9980'
#gitlab ssh主机
gitlab_rails['gitlab_ssh_host'] = '192.168.110.138'
#gitlab ssh主机连接端口
gitlab_rails['gitlab_shell_ssh_port'] = '9922'
- 配置生效(执行该命令需要等10几秒时间)
gitlab-ctl reconfigure
5. 初始化root账户
1)进入容器 docker exec -it gitlab /bin/bash
注意:容器名称要写正确,否则无法正常进入 2)进入控制台 输入
gitlab-rails console -e production
3)修改root账户密码,进入控制台后会看见如下界面:
- 输入代码
user = User.where(id:1).first - 输入代码
user.password='ctq111111' - 输入代码
user.save! - 输入代码
exit
6. 设置域名访问
- 执行命令
sudo vi /etc/hosts
- 添加一行内容(ip地址 对应域名) 192.168.110.138 gitlab.admin.com
- :wq保存
- 访问 gitlab.admin.com:9980 正常显示登录
输入用户:root 输入密码:ctq111111
7. gitlab project clone说明
容器运行端口如果采用默认80则会在ssh或者http下地址为默认的80端口,访问的时候会出现无法工作,原因是我们是通过宿主机器进行访问,因此我们要变更一下容器端口,当前如果宿主机器和容器均采用默认端口则没有关系,一般情况下我们在自己的开发或者测试环境是会做修改,防止默认端口已经占用。
可以看到我在自己本机上建立了一个job-analysis项目,目前地址显示正确且能正常访问。
参考文档
cloud.tencent.com/developer/a…
修改说明
- 调整关于修改运行配置内容,修复启动gitlab容器后无法访问的详细指南及原因
- 添加7. gitlab project clone说明