GitLab是由GitLab Inc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。 GitLab 由乌克兰程序员Dmitriy Zaporozhets 和 Valery Sizov 开发,它由Ruby 写成。后来,一些部分用Go 语言重写。
为了开发项目,尝试在私有服务器上安装gitlab。
这里使用docker安装。官方网站上有quick start,但是很多配置就没有详细讲,十分不方便。这里使用我自己的yml文件,更加方便。
安装docker
下载docker安装脚本进行安装:
wget -qO- https://get.docker.com/ | sh
启动docker:
sudo service docker start
国内可以使用镜像加速。这里不赘述了。
安装docker-compose
Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。
安装过程如下:
sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
如果安装成功,此时就会显示docker-compose的版本信息。
编写yml文件
新建文件夹来存放yml文件。使用yml文件可以快速完成配合,便于维护。
mkdir gitlab
cd gitlab
vim docker-compose.yml
按i切换到输入模式。
输入一下内容,保存退出。
web:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
hostname: "hostname.com"
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url "http://hostname:8081"
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "..."
gitlab_rails['smtp_password'] = "..."
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "..."
gitlab_rails['smtp_domain'] = "exmail.qq.com"
gitlab_rails['gitlab_shell_ssh_port'] = 2280
ports:
- '8081:8081'
- '443:443'
- '2280:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
这里配置了smtp信息。 用于发送邮件。 我使用的是腾讯企业邮箱。如果不需要直接删除相关配置。
由于服务器没有开放80 和 22 端口。这里设置了8081 和 2280 端口。 注意config中要有对应的配置(第一行和最后一行)。
docker 运行gitlab
使用指令运行gitlab。
docker-compose up -d
此时访问对应服务器url就可以设置密码。然后以root用户名登录。
可能的问题
1. 在安装之后要等一段时间才可以访问网站。开始时会提示502。可以通过docker logs -f gitlab查看配置信息。配置完成后才能使用。
2. 如果配置已经完成,配置信息中出现http states 200 但是依然无法访问,需要检查端口映射是否正确。
3. 如果一直提示配置信息中出现端口无法监听,则使用其他端口重新安装。
4. 如果一直出现502,有可能服务器配置不够。