使用centos7,linxu去搭建gitlab

配置时间冗长,切遇到一个无法跳过的错误。
linux_error.jpg
上图为发生问题的地方,在安装完成之后,执行 gitlab-ctl reconfigure。会卡在这里,
检索了一些方案,依然无法解决,且耗时很长,
采用ubuntu重新进行构建。依然卡在此步骤。
于此,转换思路使用ubuntu + docker的思路进行搭建。下面记述搭建流程操作记录。

ubuntu环境下安装docker

1,先卸载掉旧版本

  1. $ sudo apt-get remove docker docker-engine docker.io containerd runc

2,更新apt包

  1. $ sudo apt-get update

3,安装软件包以允许apt通过https使用存储库

  1. $ sudo apt-get install \
  2. apt-transport-https \
  3. ca-certificates \
  4. curl \
  5. gnupg-agent \
  6. software-properties-common

4,添加官方GPG秘钥

  1. $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  2. $ sudo apt-key fingerprint 0EBFCD88

5,设置稳定存储库

  1. $ sudo add-apt-repository \
  2. "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  3. $(lsb_release -cs) \
  4. stable"

6,更新apt包索引

  1. $ sudo apt-get update

7,推荐直接安装最新版本的docker

  1. $ sudo apt-get install docker-ce docker-ce-cli containerd.io

8,测试运行hello world镜像

  1. $ sudo docker run hello-world

卸载docker操作

卸载docker引擎

  1. $ sudo apt-get purge docker-ce

docker虽然卸载,但是镜像还会残留,卸载镜像命令

  1. $ sudo rm -rf /var/lib/docker

docker的常用命令

启动docker:

  1. systemctl start docker

停止docker:

  1. systemctl stop docker

重启docker:

  1. systemctl restart docker

查看docker状态:

  1. systemctl status docker

开机启动:

  1. systemctl enable docker

查看docker概要信息

  1. docker info

查看docker帮助文档

  1. docker --help

docker部署Gitlab

1,创建容器外挂目录

创建三个目录分别存放这些数据,便于GitLab的维护和迁移。即时是GitLab被我们玩坏了,只要这三个文件还存在,就可以很简单的重建

  1. sudo mkdir -p /gitlab/data
  2. sudo mkdir -p /gitlab/logs
  3. sudo mkdir -p /gitlab/config

2,启动gitlab容器

  1. sudo docker run --detach \
  2. --publish 8443:443 --publish 8000:80 --publish 2222:22 \
  3. --name gitlab \
  4. --restart always \
  5. --volume /gitlab/config:/etc/gitlab \
  6. --volume /gitlab/logs:/var/log/gitlab \
  7. --volume /gitlab/data:/var/opt/gitlab \
  8. -log-driver=none \
  9. beginor/gitlab-ce:11.1.4-ce.0

参数说明

  • –detach 设置容器后台运行
  • –publish 暴露 https、http和ssh端口,关于端口下文会细说
  • –name 容器名称
  • –restart always 每次启动容器就重启GitLab
  • –volume 设置GitLab数据挂载点

第一次启动容器会很慢,需要三分钟左右。可以随时通过docker ps 查看启动进度。当STATUSstarting变为health时,就说明启动成功了。

3,配置GitLab

现在就可以通过地址:http://IP:8000访问GitLab,但是为了正常使用,我们还需要配置GitLab。
我们需要修改三个参数:

  • external_url
  • ssh 端口
  • nginx监听端口

GitLab的配置文件在我们外挂的磁盘下/gitlab/config/gitlab.rb

修改external_url

  1. sudo vim /gitlab/config/gitlab.rb
  2. # 可以通过`/`搜索需要修改的参数
  3. 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基本一致,不熟悉的朋友可以自行搜索教程