文章目录

  • 用Docker Compose方式安装GitLab
    • 前提条件
    • 一键自动化以Docker Compose方式安装GitLab
    • GitLab Docker Compose文件
    • 安装和运行GitLab
    • 打开防火墙端口
    • 访问GitLab
    • 配置Gitlab
    • Troubleshooting
    • 其它参考文档

用Docker Compose方式安装GitLab

前提条件

要求至少2vCPU4G配置,否则会因为CPU太忙或内存不足导致GitLab不断重启和502错误。

参见:

  • https://gitlab.com/help/install/requirements.md

建议安装htop里监控CPU、内存和Swap的资源使用情况:

yum install htop -y

一键自动化以Docker Compose方式安装GitLab

  • https://github.com/cookcodeblog/OneDayDevOps/blob/master/components/gitlab-docker/install_gitlab.sh

GitLab Docker Compose文件

GitLab官方给的GitLab Docker镜像启动后无法访问,且定位不到问题,所以使用GitHub著名博主sameersbn封装的镜像。

Gitlab的docker-compose.yml参见:https://github.com/sameersbn/docker-gitlab

  1. Replace values of below keys using pwgen -Bsv1 64
  • GITLAB_SECRETS_DB_KEY_BASE
  • GITLAB_SECRETS_SECRET_KEY_BASE
  • GITLAB_SECRETS_OTP_KEY_BASE

Run yum install pwgen -y to install pwgen if it is not installed.

  1. Set value of GITLAB_HOST

  2. Set value of password

  3. Set timezone TZ as Asia/Shanghai and GITLAB_TIMEZONE=Beijing

GITLAB_TIMEZONE的值为RubyOnRails的timezone语法,参见:

https://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html

一个GitLab的docker-compose.yml例子:

https://github.com/cookcodeblog/OneDayDevOps/blob/master/components/gitlab-docker/docker-compose.yml

这里使用10080和10022分别作为HTTP和SSH端口,并设置时区为中国时间。

安装和运行GitLab

mkdir -p /opt/gitlab
cp docker-compose.yml /opt/gitlab
cd /opt/gitlabdocker-compose up -d

查看日志:

docker-compose logs -f

Debug:

docker-compose exec gitlab /bin/bash

打开防火墙端口

在防火墙上打开HTTP和SSH端口:

firewall-cmd --list-all# http port
firewall-cmd --zone=public --add-port=10080/tcp
firewall-cmd --zone=public --add-port=10080/tcp --permanent# ssh port
firewall-cmd --zone=public --add-port=10022/tcp
firewall-cmd --zone=public --add-port=10022/tcp --permanentfirewall-cmd --reload
firewall-cmd --list-all

访问GitLab

在浏览器中打开http://<gitlab_host>:10080

配置Gitlab

参见:

  • 配置GitLab

Troubleshooting

Q: GitLb不断重启,CPU负载很高,且报错:unicorn (exit status 1; not expected)

A:

  1. 先运行htop检查服务器的CPU和内存资源使用情况,最少需要2vCPU4G

  2. 运行ulimit -a查看ulimit,并可运行以下命令增加ulimit

    ulimit -u unlimited
    ulimit -n 65535
    

    参见:https://blog.csdn.net/duanbiren123/article/details/80190750

  3. 运行docker-compose logs -f查看日志

  4. 运行以下命令:

    docker-compose exec gitlab tail -f /var/log/gitlab/gitlab/unicorn.stderr.log
    

    查看unicorn日志,如果日志中报错如下:

    /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/unicorn-5.4.1/lib/unicorn/http_server.rb:205:in `pid=': Already running on PID:581 (or pid=/home/git/gitlab/tmp/pids/unicorn.pid is stale) (ArgumentError)
    

    则需要执行以下命令删除unicorn.pid,再重启GitLab:

    docker-compose exec gitlab rm -f /home/git/gitlab/tmp/pids/unicorn.pid && docker-compose down && docker-compose up -d
    
  5. 或者更彻底地先删除持久卷,再重启GitLab:

    docker-compose exec gitlab rm -f /home/git/gitlab/tmp/pids/unicorn.pid && docker-compose down && rm -rf /srv/docker/gitlab && docker-compose up -d
    
  6. 重启浏览器,再次访问GitLab

参考文档:

  • https://blog.stead.id.au/2017/03/synology-gitlab-error-502.html
  • https://github.com/sameersbn/docker-gitlab/issues/1861

Q: Docker Compose启动GitLab不成功,报错:Bind for 0.0.0.0:10080 failed: port is already allocated’

A:

  1. 先运行docker stop gitlab停止GitLab相关容器
  2. 再运行docker-compose up -d启动GitLab

其它参考文档

  • https://docs.gitlab.com/omnibus/docker/#install-gitlab-using-docker-compose
  • https://docs.gitlab.com/omnibus/docker/#pre-configure-docker-container
  • https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-config-template/gitlab.rb.template
  • https://hub.docker.com/r/gitlab/gitlab-ce
  • https://developer.ibm.com/code/2017/07/13/step-step-guide-running-gitlab-ce-docker/

Docker Compose方式安装GitLab相关推荐

  1. 阿里云服务器Docker及Docker Compose的安装

    2019独角兽企业重金招聘Python工程师标准>>> 本文对阿里云ECS服务器如何安装Docker和Docker Compose进行说明,以centOS系统为例. 一.开通外网的E ...

  2. Docker与Docker Compose的安装以及Portainer容器管理工具

    Docker官网 概述 Docker 是一个用于开发.发布和运行应用程序的开放平台.Docker 能够将应用程序与基础架构分离,以便可以快速交付软件.使用 Docker,可以像管理应用程序一样管理基础 ...

  3. docker compose linux安装以及使用

    1 安装 Compose 安装 Linux Linux 上我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/r ...

  4. Ubuntu18.04或者20.04上用docker的方式安装微信或者qq

    前言 日常生活中,微信和qq等一些常用的IM软件必不可少,但是腾讯一直没有提供Linux版本的安装包,为自己的工作和生活增加了不少麻烦,目前可以采用的登录方式有三种,一种是网页版微信登录,但是经常会受 ...

  5. docker Compose 下载安装

    在linux上 请注意,Compose standalone 使用-compose语法而不是当前的标准语法compose. 例如docker-compose up,在使用 Compose standa ...

  6. Docker 方式安装 gitlab ( 阿里云ECS )

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1.查找镜像: docker search gitlab 2. 拉取镜像: docker pull ...

  7. docker compose快速按照GitLab代码托管工具以及GitLab基本用法

    Git 与 SVN 区别 GitLab 是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目.它拥有与 Git ...

  8. 1.2 win10下Docker 和 Docker Compose的安装

    参考步骤 中文: https://www.runoob.com/docker/windows-docker-install.html 英文官网: https://docs.docker.com/doc ...

  9. docker之win安装gitlab

    以下是windows10安装Docker DeskTop的步骤(!!!特别注意,docker和虚拟机系统不能共存,消勾程序和功能里面->Hyper-V的后虚拟机内的系统才能正常启动,但消勾后do ...

最新文章

  1. 高中计算机个人总结怎么写,毕业生自我总结范文
  2. DHCP常用配置文件解析
  3. mysql 优化实例(百万级数据)
  4. 详细解析用C#写的小游戏《彩色连珠》(附源代码)
  5. 推荐一个算法/数据结构 可视化(Data structure Visualization) 网站
  6. python文件读取 ,json文件的存储
  7. 2021-03-09 Matlab RBF神经网络及其实例
  8. 史上最全Vim快捷键键位图(入门到进阶)
  9. leetcode50:Pow(x, n)详解——pygo
  10. [加壳脱壳] VMP壳原理简介
  11. 北京市海淀区卫星地图离线包下载
  12. 电子基础大全:整理了电子设计所需的基础知识
  13. 专业学习与职业发展之我见
  14. PhotoShop 橡皮擦工具组、渐变工具
  15. 五步恢复XP系统“桌面清理向导”
  16. Tomcat配置https 访问http跳转https 配置域名
  17. 设置gvim中横竖光标_VIM配置高亮光标所在行和所在列
  18. Seaweedfs上传大文件_large file
  19. JavaWeb - 小米商城:用户注册
  20. win7系统问题:——桌面壁纸变黑解决方案

热门文章

  1. gensim官方文档实践笔记
  2. 使用 DBCA 命令 删除 Oracle 数据库
  3. 多旋翼飞行器设计与控制·绪论(笔记001)
  4. 李天平:技术以外的功夫
  5. MySQL中的排序与分页
  6. web性能优化 JS/CSS CDN加速公共库
  7. Faiss:Facebook开源的相似性搜索类库
  8. 用C/C++写一个简单的音乐播放器(基于windows控制台编程)
  9. 个税汇算期,公司收到好多申诉,怎么办?
  10. 微信小程序,物流助手对接(中通篇)待续