通过Docker搭建自己的gitlab

Posted liugp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过Docker搭建自己的gitlab相关的知识,希望对你有一定的参考价值。

获取镜像

docker pull beginor/gitlab-ce:11.3.0-ce.0

运行

通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。

sudo mkdir -p /mnt/sda1/gitlab/etc
sudo mkdir -p /mnt/sda1/gitlab/log
sudo mkdir -p /mnt/sda1/gitlab/data

准备好这三个目录之后, 就可以开始运行 Docker 镜像了。 我的建议是使用unless-stopped 作为重启策略, 因为这样可以手工停止容器, 方便维护。

完整的运行命令如下:

docker run     --detach     --publish 8443:443     --publish 8080:80     --name gitlab     --restart unless-stopped     --volume /mnt/sda1/gitlab/etc:/etc/gitlab     --volume /mnt/sda1/gitlab/log:/var/log/gitlab     --volume /mnt/sda1/gitlab/data:/var/opt/gitlab     beginor/gitlab-ce:11.3.0-ce.0

升级

小版本升级(例如从 8.8.2 升级到 8.8.3), 参照官方的说明, 将原来的容器停止, 然后删除:

docker stop gitlab
docker rm gitlab

然后重新拉一个新版本的镜像下来,

docker pull beginor/gitlab-ce:11.3.0-ce.0

还使用原来的运行命令运行,

docker run     --detach     --publish 8443:443     --publish 8080:80     --name gitlab     --restart unless-stopped     --volume /mnt/sda1/gitlab/etc:/etc/gitlab     --volume /mnt/sda1/gitlab/log:/var/log/gitlab     --volume /mnt/sda1/gitlab/data:/var/opt/gitlab     beginor/gitlab-ce:11.3.0-ce.0

GitLab 在初次运行的时候会自动升级, 为了预防万一, 还是建议先备份一下 /mnt/sda1/gitlab/ 这个目录。

大版本升级(例如从 8.7.x 升级到 8.8.x)用上面的操作有可能会出现错误, 如果出现错误可以尝试登录到容器内部, 可以用 docker exec , 也可以用 ssh , 依次执行下面的命令:

gitlab-ctl reconfigure
gitlab-ctl restart
默认用户:root,密码自己在页面上设置

问题:如果docker安装并成功运行gitlab容器之后,访问gitlab发现一直出现502错误。

  问题描述:对于上述问题,因为我的服务器配置比较low(1G,50G),而GitLab对系统硬件有要求,主要就是内存大于2G,否则或碰到奇怪的错误。所以我经过几次尝试安装一直显示502错误。没办法,穷啊,那只有找解决方案。终于找到一篇相关的文章小型云服务器搭建GitLab遇到的坑  ,核心思想是增加服务器的swap空间。这个问题竟然成功解决。

$ sudo free -h
$ free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        1.5G         68M        5.8M        242M        125M
Swap:          0           0            0

解决:如果Swap 的total小于2G,可以添加Swap分区大小

sudo -i # 切换root权限
dd if=/dev/zero of=/var/swap bs=1024 count=2048000 #分区大小设为2g<br>ls -lh /var/swap # 验证<br>mkswap /var/swap #启动分区<br>swapon /var/swap #激活

最后大功告成:

技术图片

以上是关于通过Docker搭建自己的gitlab的主要内容,如果未能解决你的问题,请参考以下文章

使用docker搭建gitlab版本控制系统

gitlab私人代码仓库搭建(docker)

docker下部署gitlab

Docker决战到底 自己动手搭建GitLab服务

docker搭建的gitlab通过域名访问

在自己搭建的gitlab中,能部署用户可访问的前端打包文件吗?