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,有可能服务器配置不够。