一、gitlab介绍
gitlab官方地址:https://about.gitlab.com/
gitlab是利用 ruby on rails 一个开源的版本管理系统,实现一个自托管的git项目仓库,可通过web界面进行访问公开的或者私人项目。它拥有与github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
gitlab就是一个代码仓库,能够非常好地实现对代码的管理和开发人员之间的团队协作。目前应用最为广泛地就是利用jenkins和gitlab实现持续集成和部署。官方的推荐配置为2核心cpu和4g内存,这是因为gitlab的整体运行包含了多个进程,如:nginx、postgresql、prometheus、redis等等。
为此,这里使用docker-compose进行单机部署gitlab中文社区版本,让大家更好地体会gitlab的强大功能,其余废话就不多说了,直接开撸就对了!!
二、安装docker
1.安装docker依赖包
| 
 					1			  | 
[root@gitlab ~]# yum -y install yum-utils device-mapper-persistent-data lvm2							 | 
2.添加docker-ce镜像源并安装
1.1)国外源(适合在国外工作的朋友)
| 
 					1				
 					2				
 					3			  | 
[root@gitlab ~]# yum-config-manager \\					
--add-repo \\					
https://download.docker.com/linux/centos/docker-ce.repo							 | 
1.2)国内阿里云源(适合在国内工作的朋友)
| 
 					1				
 					2				
 					3			  | 
[root@gitlab ~]# yum-config-manager \\					
--add-repo \\					
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo							 | 
2)服务器的包信息下载到本地电脑缓存起来
| 
 					1			  | 
[root@gitlab ~]# yum makecache fast							 | 
3)安装docker ce
| 
 					1			  | 
[root@gitlab ~]# yum -y install docker-ce							 | 
4)配置下载docker镜像加速器
国外加速器:
| 
 					1			  | 
[root@gitlab ~]# curl -ssl https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://bc437cce.m.daocloud.io							 | 
国内阿里云加速器:
| 
 					1				
 					2				
 					3				
 					4				
 					5			  | 
vim /etc/docker/daemon.json					
#输入下面内容并保存:					
{					
"registry-mirrors": [https://9w1hl6qt.mirror.aliyuncs.com]					
}							 | 
5)重载systemctl并自动和开启自启动docker
| 
 					1				
 					2				
 					3				
 					4				
 					5			  | 
[root@gitlab ~]# systemctl daemon-reload					
[root@gitlab ~]# systemctl start docker					
[root@gitlab ~]# systemctl enable docker					
[root@gitlab ~]# docker --version 					
docker version 18.09.0, build 4d60db4							 | 
三、安装docker-compose
下载docker-compose二进制文件并添加执行权限
| 
 					1				
 					2				
 					3				
 					4				
 					5				
 					6				
 					7				
 					8			  | 
[root@gitlab ~]# curl -l https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s-uname -m` -o /usr/local/bin/docker-compose					
% total % received % xferd average speed time time time current					
dload upload total spent left speed					
100 617 0 617 0 0 590 0 --:--:-- 0:00:01 --:--:-- 590					
100 11.2m 100 11.2m 0 0 498k 0 0:00:23 0:00:23 --:--:-- 737k					
[root@gitlab ~]# chmod +x /usr/local/bin/docker-compose					
[root@gitlab ~]# docker-compose --version					
docker-compose version 1.23.2, build 1110ad01							 | 
四、安装gitlab
1)编辑docker-compose的yml文件
| 
 					1				
 					2				
 					3			  | 
[root@gitlab ~]# mkdir gitlab					
[root@gitlab ~]# cd gitlab					
[root@gitlab gitlab]# vim docker-compose.yml							 | 
| 
 					1				
 					2				
 					3				
 					4				
 					5				
 					6				
 					7				
 					8				
 					9				
 					10				
 					11				
 					12				
 					13				
 					14				
 					15				
 					16				
 					17				
 					18				
 					19				
 					20				
 					21				
 					22				
 					23				
 					24				
 					25				
 					26				
 					27				
 					28				
 					29				
 					30				
 					31				
 					32			  | 
version: '2'					
services:					
gitlab:					
image: 'twang2218/gitlab-ce-zh:latest'					
container_name: "gitlab"					
restart: unless-stopped					
privileged: true					
hostname: 'gitlab'					
environment:					
tz: 'asia/shanghai'					
gitlab_omnibus_config: |					
external_url 'http://ip或者用nginx做反代的域名'					
gitlab_rails['time_zone'] = 'asia/shanghai'					
gitlab_rails['smtp_enable'] = true					
gitlab_rails['smtp_address'] = "smtp.163.com"					
gitlab_rails['smtp_port'] = 465					
gitlab_rails['smtp_user_name'] = "xxxxxx@163.com"					
gitlab_rails['smtp_password'] = "授权码"					
gitlab_rails['smtp_domain'] = "163.com"					
gitlab_rails['smtp_authentication'] = "login"					
gitlab_rails['smtp_enable_starttls_auto'] = true					
gitlab_rails['smtp_tls'] = true					
gitlab_rails['gitlab_email_from'] = 'xxxxxx@163.com'					
gitlab_rails['gitlab_shell_ssh_port'] = 22					
ports:					
- '8181:80'					
- '8443:443'					
- '22:22'					
volumes:					
- /opt/gitlab/config:/etc/gitlab					
- /opt/gitlab/data:/var/opt/gitlab					
- /opt/gitlab/logs:/var/log/gitlab							 | 
端口映射说明以及注意事项:
- gitlab镜像官方推荐容器80端口映射宿主机8181端口
 - gitlab镜像官方推荐容器443端口映射宿主机8443端口
 - gitlab镜像官方推荐容器22端口映射宿主机22端口
 
⭐️头两行不能顶头写,要分别都空一行,可以去yml文件检测网站进行检测:
https://www.bejson.com/validators/yaml_editor/
如你们的检测如下图所示,则表示yml文件完全无误:
下面是在我linux服务器上看到的情况:
2)创建相关目录
| 
 					1				
 					2				
 					3				
 					4				
 					5				
 					6			  | 
[root@gitlab gitlab]# mkdir -p /opt/gitlab/{config,data,logs}					
[root@gitlab gitlab]# ls -l /opt/gitlab/					
total 0					
drwxr-xr-x 2 root root 6 dec 22 12:03 config					
drwxr-xr-x 2 root root 6 dec 22 12:03 data					
drwxr-xr-x 2 root root 6 dec 22 12:03 logs							 | 
目录说明如下:
- config 存储 gitlab 配置信息
 - data 存储数据库
 - logs 存储日志
 
3)拉取gitlab中文版镜像
| 
 					1				
 					2				
 					3				
 					4				
 					5				
 					6				
 					7				
 					8				
 					9				
 					10				
 					11				
 					12				
 					13				
 					14				
 					15				
 					16				
 					17				
 					18				
 					19				
 					20				
 					21				
 					22				
 					23				
 					24				
 					25				
 					26				
 					27			  | 
[root@gitlab gitlab]# docker pull twang2218/gitlab-ce-zh:latest					
latest: pulling from twang2218/gitlab-ce-zh					
8ee29e426c26: pull complete					
6e83b260b73b: pull complete					
e26b65fd1143: pull complete					
40dca07f8222: pull complete					
b420ae9e10b3: pull complete					
a218309dd589: pull complete					
5c60fd7ba0ce: pull complete					
659c2144b5a3: pull complete					
8289bbac0d0e: pull complete					
31bbd150e8a7: pull complete					
9114e78243fa: pull complete					
e242e5cd1314: pull complete					
0a079dc3f92c: pull complete					
f0e195b09fd2: pull complete					
6e23346e2f58: pull complete					
91f00659be69: pull complete					
a1031bcc5b2c: pull complete					
e3074327c7b1: pull complete					
a917618dbe42: pull complete					
digest: sha256:62686b74c6fca5ece8ed582d03a126c5988423dd8a19ce70e9a22357ffcaf1c8					
status: downloaded newer image for twang2218/gitlab-ce-zh:latest					
[root@gitlab gitlab]# docker images					
repository tag image id created size					
twang2218/gitlab-ce-zh latest 18da462b5ff5 4 months ago 1.61gb							 | 
4)启动gitlab的容器
	在启动前,先要修改宿主机的22端口,因为宿主机占用了22端口,所以启动容器会失败,因为映射不过来,修改如下:
	vim /etc/ssh/sshd_config
默认在第17行修改:port 2222
修改后,重启sshd:systemctl restart sshd
| 
 					1				
 					2				
 					3			  | 
[root@gitlab gitlab]# netstat -tulnp | grep 22					
tcp 0 0 0.0.0.0:2222 0.0.0.0: listen 31889/sshd					
tcp6 0 0 :::2222 ::: listen 31889/sshd							 | 
正式启动:
| 
 					1				
 					2				
 					3				
 					4				
 					5				
 					6				
 					7				
 					8				
 					9				
 					10				
 					11			  | 
[root@gitlab gitlab]# docker-compose up -d					
creating network "gitlab_default" with the default driver					
creating gitlab ... done					
[root@gitlab gitlab]# docker-compose ps					
name command state ports					
gitlab /assets/wrapper up (healthy) 0.0.0.0:22->22/tcp, 0.0.0.0:8443->443/tcp, 0.0.0.0:8181->80/tcp					
[root@gitlab gitlab]# docker ps -a					
container id image command created status ports names					
814e559dc728 twang2218/gitlab-ce-zh:latest "/assets/wrapper" 5 minutes ago up 5 minutes (healthy) 0.0.0.0:22->22/tcp, 0.0.0.0:8181->80/tcp, 0.0.0.0:8443->443/tcp gitlab							 | 
5)gitlab设置开机启动
| 
 					1				
 					2				
 					3				
 					4				
 					5				
 					6			  | 
[root@gitlab gitlab]# chmod +x /etc/rc.local					
[root@gitlab gitlab]# ls -l /etc/rc.local					
lrwxrwxrwx 1 root root 13 dec 3 14:31 /etc/rc.local -> rc.d/rc.local					
[root@gitlab gitlab]# echo "cd /root/gitlab && docker-compose up -d" >> /etc/rc.local					
[root@gitlab gitlab]# tail -1 /etc/rc.local					
cd /root/gitlab && docker-compose up -d							 | 
6)gitlab管理界面
地址:在浏览器输入yml文件的第12行ip或者域名
用户:root
密码:首次登陆需要手动设置密码
如下图所示:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。
原文链接:http://blog.51cto.com/zpf666/2333869
相关文章
- 刀片服务器是什么 刀片服务器的主要特点 2025-05-27
 - 利用FTP和计划任务自动备份网站数据和数据库 2025-05-27
 - 服务器技术之硬件冗余技术 2025-05-27
 - 服务器是租用还是服务器托管好? 2025-05-27
 - 什么是DNS以及它如何影响服务器? 2025-05-27
 
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
 - 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
 - 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
 - 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
 - 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
 
快网idc优惠网
QQ交流群
- 
            2025-05-27 108
 - 
            2025-05-26 73
 - 
            2025-05-27 65
 - 
            2025-05-27 35
 - 
            2025-05-26 53
 
        





    		
            	
        
        
        
        