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