使用centos7,linxu去搭建gitlab
配置时间冗长,切遇到一个无法跳过的错误。
上图为发生问题的地方,在安装完成之后,执行 gitlab-ctl reconfigure。会卡在这里,
检索了一些方案,依然无法解决,且耗时很长,
采用ubuntu重新进行构建。依然卡在此步骤。
于此,转换思路使用ubuntu + docker的思路进行搭建。下面记述搭建流程操作记录。
ubuntu环境下安装docker
1,先卸载掉旧版本
$ sudo apt-get remove docker docker-engine docker.io containerd runc
2,更新apt包
$ sudo apt-get update
3,安装软件包以允许apt通过https使用存储库
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
4,添加官方GPG秘钥
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
5,设置稳定存储库
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
6,更新apt包索引
$ sudo apt-get update
7,推荐直接安装最新版本的docker
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
8,测试运行hello world镜像
$ sudo docker run hello-world
卸载docker操作
卸载docker引擎
$ sudo apt-get purge docker-ce
docker虽然卸载,但是镜像还会残留,卸载镜像命令
$ sudo rm -rf /var/lib/docker
docker的常用命令
启动docker:
systemctl start docker
停止docker:
systemctl stop docker
重启docker:
systemctl restart docker
查看docker状态:
systemctl status docker
开机启动:
systemctl enable docker
查看docker概要信息
docker info
查看docker帮助文档
docker --help
docker部署Gitlab
1,创建容器外挂目录
创建三个目录分别存放这些数据,便于GitLab的维护和迁移。即时是GitLab被我们玩坏了,只要这三个文件还存在,就可以很简单的重建
sudo mkdir -p /gitlab/data
sudo mkdir -p /gitlab/logs
sudo mkdir -p /gitlab/config
2,启动gitlab容器
sudo docker run --detach \
--publish 8443:443 --publish 8000:80 --publish 2222:22 \
--name gitlab \
--restart always \
--volume /gitlab/config:/etc/gitlab \
--volume /gitlab/logs:/var/log/gitlab \
--volume /gitlab/data:/var/opt/gitlab \
-log-driver=none \
beginor/gitlab-ce:11.1.4-ce.0
参数说明
- –detach 设置容器后台运行
- –publish 暴露 https、http和ssh端口,关于端口下文会细说
- –name 容器名称
- –restart always 每次启动容器就重启GitLab
- –volume 设置GitLab数据挂载点
第一次启动容器会很慢,需要三分钟左右。可以随时通过docker ps
查看启动进度。当STATUS
由starting
变为health
时,就说明启动成功了。
3,配置GitLab
现在就可以通过地址:http://IP:8000
访问GitLab,但是为了正常使用,我们还需要配置GitLab。
我们需要修改三个参数:
- external_url
- ssh 端口
- nginx监听端口
GitLab的配置文件在我们外挂的磁盘下/gitlab/config/gitlab.rb
修改external_url
sudo vim /gitlab/config/gitlab.rb
# 可以通过`/`搜索需要修改的参数
external_url 'http://IP:8000' # IP填写GitLab部署的服务器的IP
修改ssh端口
如果不修改ssh的端口,clone和提交代码时一直需要输入密码。
因为通过ssh链接gitlab时默认访问的是22端口,但是使用docker部署,22端口在宿主机一直被占用,所以映射为2222端口,需要修改gitlab配置文件
### GitLab Shell settings for GitLab
gitlab_rails['gitlab_shell_ssh_port'] = 2222
# gitlab_rails['gitlab_shell_git_timeout'] = 800
修改nginx监听的端口
nginx['listen_port'] = 80
现在配置已经完成,重启容器即可使用
docker restart gitlab
访问
GitLab的访问地址是:http://IP:8000/
。第一次访问会让用户修改密码,修改成功后就可以通过账号(root)和该密码登录GitLab。
当然为了正常使用GitLab,添加SSH公钥是必须的。GitLab的使用方式和GitHub基本一致,不熟悉的朋友可以自行搜索教程