GitLab是一个基于Git的在线代码仓库托管系统,我们可以用gitlab搭建一个类似于Github一样的代码管理系统,一般用于在多人协作、企业、学校等内部代码管理。

GitLab支持源码安装,也支持yum、apt等软件管理器安装,但是大多安装配置过程繁琐而且容易失败,所以一般而言对于此类系统平台软件推荐用docker来部署安装。

假设你已经安装好docker,那么下面我们根据官方文档简单介绍GitLab部署:

1)设置系统环境变量,制定gitlab数据存储目录(请指定到有读写权限的目录):

Linux:export GITLAB_HOME=/srv/gitlab

MacOS:export GITLAB_HOME=$HOME/gitlab

后续gitlab镜像将在挂载GITLAB_HOME目录,数据将存储载此目录下面:

本地路径容器路径用途
$GITLAB_HOME/data/var/opt/gitlab存储gitlab主要生产数据
$GITLAB_HOME/logs/var/log/gitlab日志信息
$GITLAB_HOME/config/etc/gitlab配置文件信息

2)部署gitlab,主要有以下3种方式来部署:

本文主要介绍第一种方式,直接使用docker拉取镜像,操作简单便捷。


sudo docker run --detach \
  --hostname gitlab.example.com \
  --publish 443:443 --publish 80:80 --publish 22:22 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  gitlab/gitlab-ee:latest

直接从gitlab/gitlab-ee:latest拉取镜像,其中–publish参数指定了端口的映射信息。部署成功后我们访问gitlab.example.com即可进入gitlab了。

如果我们想配置gitlab按照如下步骤:


sudo docker exec -it gitlab /bin/bash
# 或者执行
sudo docker exec -it gitlab editor /etc/gitlab/gitlab.rb

# 编辑完成后重启docker镜像
sudo docker restart gitlab

也可以直接在启动镜像时指定预设参数:

例:指定IP访问


sudo docker run --detach \
  --hostname gitlab.example.com \
  --publish 198.51.100.1:443:443 \
  --publish 198.51.100.1:80:80 \
  --publish 198.51.100.1:22:22 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  gitlab/gitlab-ee:latest

此时我们访问http://198.51.100.1/ 或者 https://198.51.100.1/即可(端口映射格式hostPort:containerPort)。

参考资料:

1.https://docs.gitlab.com/omnibus/docker/