GitLab分为社区版(Community Edition, 缩写为CE)和企业版(Enterprise Edition, 缩写为EE)。
GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
1.从Docker镜像仓库拉取gitlab镜像
# docker pull gitlab/gitlab-ce
2.运行gitlab镜像
通常会将GitLab的配置(etc)、日志(log)、数据(data)放到容器外,便于日后升级,因此需要先准备这三个目录。在设置其他所有内容之前,需配置一个新的环境变量$GITLAB_HOME,该变量指向配置,日志和数据文件文件将驻留的目录。确保目录存在并且授予适当的权限。
# export GITLAB_HOME=$HOME/docker/gitlab
$HOME: 当前系统根目录,需要提前创建好docker/gitlab目录
// 在系统跟目录执行
# mkdir docker/gitlab
GitLab容器使用主机安装的卷来存储持久数据:
sudo docker run -d \
-p 8081:443 -p 8082:80 -p 8083: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-ce
//参数说明
-d : 后台运行
-p : 将容器内部端口向外映射
--name : 命名容器名称
-v : 将容器内数据文件夹或日志、配置等文件夹挂载到宿主指定目录
3.配置gitlab
//通过vi来编辑相应配置
vim $HOME/gitlab/config/gitlab.rb
//配置http协议所使用的访问地址
external_url 'http://103.47.83.130'
//配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = 'http://103.47.83.130'
gitlab_rails['gitlab_shell_ssh_port'] = 8861
配置邮箱
4.修改完配置后重启gitlab
# docker restart gitlab
5.重启之后首次登录gitlab
默认用户名:root
密码需进入到容器:
# docker exec -it 容器ID /bin/bash
# cat /etc/gitlab/initial_root_password
6.登录gitlab
http://103.47.83.130:8082
7.读取容器日志
sudo docker logs gitlab
8.问题集
8.1 克隆地址中没有端口,若修改
external_url 'http://103.47.83.130:8082'
则会出现不能访问。因此除了这样配置外还需将nginx监听端口修改为80
nginx['listen_port'] = 80