Foreword
最近准备迁移公司的svn仓库,记录下自己学习及迁移过程.
Install
GitLab目前提供三个版本:(以下都是docker镜像)
只是为了满足基本使用,以CE版本安装.
Run
运行环境要求
4G内存(最低2G)、4核或8核CPU
启动GitLab是比较简单.但在正式开始使用之前,对它的配置有个全面的了解是很有必要的.
1 | $ docker run -d \ |
--env GITLAB_OMNIBUS_CONFIG=""
该参数可以覆盖容器中GitLab的配置文件/etc/gitlab/gitlab.rb.具体参数详见gitlab.rb.template
Language translate
使用xlang提供的汉化包.
测试汉化包
我使用的gitlab版本是v11.3.5,在xlang的branch中只能找到11-3-stable-zh.所以我先进行了测试,看是否可用.(如何测试?可以按照这篇文章gitlab汉化操作.)
实际上就是使用汉化包的文件替换/opt/gitlab/embedded/service/gitlab-rails/
中的文件
1 | $ cp -rf gitlab-11-3-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/ |
测试暂时没发现问题,就是使用11-3-stable-zh版本的汉化包.
如何将汉化包加入容器?
我用的是镜像,难道我将汉化包文件路径映射到容器中吗?好吧,来测试一把.
1 | $ docker run -d \ |
结果悲剧了,一直不断自动重启.这种问题也不是我能解决的,只能先放弃了.
怎么办呢?搜索了一番,找到了twang2218/gitlab-ce-zh提供的Dockerfile.
在twang2218的Dockerfile中找到了使用替换文件的操作
既然twang2218能打包成功,说明Dockerfile是正确的.现在只要替换为我使用的版本和汉化包版本应该同样有效.(他山之石可以攻玉)
构建汉化包镜像
生成Dockerfile
在github上直接Forktwang2218/gitlab-ce-zh的代码,再clone到本地.
1 | $ git clone https://github.com/steven-ji/gitlab-ce-zh.git |
修改version.sh文件,增加11.3.5
1 | $ vim version.sh |
使用脚本生成Dockerfile文件.会生成11.3
目录,并且里面有个Dockerfile文件.
1 | $ ./build generate 11.3 |
注:由于xlang提供v11.3.5的汉化包为11.3-stable-zh,所以需要修改Dockerfile文件中的v11.3.5-zh为11.3-stable-zh
通过docker hub自动构建镜像
关联github即可,具体操作忽略.
使用汉化版gitlab
1 | $ docker pull jilingjun1014/gitlab-zh:v11.3.5 |
Config
GitLab启动加载的配置文件为gitlab.rb,先创建出来.
1 | $ touch /data/gitlab/config/gitlab.rb |
邮件通知配置
邮件的配置方式比较多,我的是以阿里云企业邮箱为主.(以下提供链接)
1 | gitlab_rails['gitlab_email_from'] = "username@company.com" |
测试邮箱
1 | # ssh到Gitlab的docker容器中. |
配置外部访问的URL
不使用内置的nginx时可以不配置.
- 支持https
1 | # 配置文件中添加如下,则访问GitLab的路径就是:http://gitlab.example.com |
配置端口
配置web访问端口
配置文件
external_url
属性指定.(实际上,修改的是容器内的端口)
1 | external_url "http://gitlab.example.com:9080" |
如:访问端口为9080和9443,则在容器启动时,宿主机与容器的映射端口为-p 9443:9443 -p 9080:9080
配置容器ssh端口
配置文件:
gitlab_rails['gitlab_shell_ssh_port'] = 9022
配置支持Https
GitLab安装时默认绑定安装了一个内置的Nginx.
使用内置Nginx
1 | # set access url |
使用外部Nginx
1 | # 关闭内置nginx |
配置Git Repository数据存储路径
Git repository数据存储的默认路径是:/var/opt/gitlab/git-data.
注:如果采用了docker镜像方式,在启动时已经指定了宿主机的目录/data/gitlab/data,所以下面的配置可以不用.
1 | # default修改存储目录,alternative增加一个存储目录 |
GitLab重新加载配置
对配置的所有修改,都需要重载配置并重启.
1 | $ gitlab-ctl reconfigure |
Example
Environment
- mac 10.13.6, gitlab-ce 11.3.5-ce.0, docker 18.03.1-ce
Set configuration
Set Store path、Suport https、Set emial
配置文件路径:
/Users/jilingjun/Applications/data/gitlab/config
- ssl文件路径:
/Users/jilingjun/Applications/data/gitlab/config/ssl
- ssl文件路径:
数据存储路径:
/Users/jilingjun/Applications/data/gitlab/data
日志存储路径:
/Users/jilingjun/Applications/data/log/gitlab
1 | $ vim /Users/jilingjun/Applications/data/gitlab/config/gitlab.rb |
Generator And Use self certificate
参考之前写的《生成自签名根证书》
RUN
1 | $ docker run -d \ |