GitLab搭建与维护(基于Docker镜像sameersbn/docker(2)

目前发现sameersbn/gitlab:7.4.3有一个非常坑的地方:容器启动可能连不上数据库,是因为容器启动时会探测数据库是否可用,而探测的方法是mysqladmin连接DB_HOST的3306端口,而不是DB_PORT指定的端口,已提交issue给作者。

3.2.4.4. 给gitlab容器配置IP

pipework br1 gitlab 192.168.1.1/24@192.168.1.254

在gitlab容器启动(docker run)时可以加上-p参数来将容器里的端口映射到宿主上,但个人比较倾向给容器配置一个独立IP,因此上述命令没有采用-p来做端口映射,但是-e ‘GITLAB_PORT=80′ -e ‘GITLAB_SSH_PORT=22′ -e ‘GITLAB_HOST=gitlab.example.com’依然要指定,否则gitlab无法使用

3.2.4.5. 安装已完成,可以打开页面

url: gitlab.example.com 账户:root 密码:5iveL!fe

效果:

gitlab_example

3.2.4.6. 加入开机启动

加入/etc/rc.local echo 'docker start gitlab_redis' >> /etc/rc.local echo 'docker start gitlab_mysql' >> /etc/rc.local echo 'docker start gitlab' >> /etc/rc.local echo 'pipework br1 gitlab 192.168.1.1/24@192.168.1.254' >> /etc/rc.local

4. GitLab API wrappers

其他很多git库的实现都太底层了,和linux的git命令完全不一样,一点也不友好。但目前发现这个模块上传下载代码只支持SSH,不支持HTTP,因此我还是更喜欢使用linux git命令

5. GitLab使用的FAQ 5.1. git代码发布支持2种方法:ssh和http(s)

ssh:必须添加ssh key才能发布

http:使用用户名、密码,若接入了LDAP,就是LDAP中的账户密码

https:暂未测试过

5.2. 限制git上传的单个文件大小

若gitlab是通过sameersbn/gitlab:7.4.3镜像创建的,那么可以通过环境变量NGINX_MAX_UPLOAD_SIZE进行限制

5.3. 通过API进行一些操作例如创建Project,得到成功的响应,但却没有立即生效,过了几秒才生效

由于GitLab为异步架构,Ruby on Rails收到创建Project请求后将该任务推送到Redis中,但是没有等待执行完毕,而是直接返回成功。后台Sidekiq从Redis订阅任务并实时执行,但由于执行需要时间,而API返回很快,因此会造成这种情况发生。目前没有其他解决办法,只能在自己程序逻辑里sleep几秒进行重试

5.4. 页面上”Profile settings->SSH Keys”与”Project Settings里Deploy Keys”的区别

Profile settings->SSH Keys:是用户全局的Key,具有对该用户所有项目仓库进行上传下载(push、clone)的权限

Project Settings里Deploy Keys:针对某个项目,具有下载(clone)的权限,而不具备上传(push)的权限

5.5. gitlab默认时区是UTC

sameersbn/gitlab:7.4.3镜像无法对时区进行修改,若是手动安装的gitlab,可以通过修改一个.rb文件来生效,具体没有测试过,有需要的可以自行百度搜下。

时区是UTC主要影响的是数据库里关于时间字段的值(created_at、updated_at等),对用户git仓库是不影响的,因为git仓库的创建、代码更新都是用户通过git工具自行操作,因此是用户自己的时区。

6. GitLab维护 6.1. 数据路径、日志路径

由于gitlab容器在启动时已将宿主/opt/gitlab/data、/opt/gitlab/log目录挂载到容器里,因此可以在宿主上进入这2个目录中查看,另外可以通过docker logs查看。

6.2. 高可用

更多GitLab相关教程见以下内容

Ubuntu 14.04下安装GitLab指南 

如何在Ubuntu Server 14.04下安装Gitlab中文版 

CentOS源码安装GitLab汉化版 

在 Ubuntu 12.04 上安装 GitLab

GitLab 5.3 升级注意事项

在 CentOS 上部署 GitLab (自托管的Git项目仓库)

在RHEL6/CentOS6/ScientificLinux6上安装GitLab 6.0.2

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/fd0ac618a9d4878e599da3ee291da339.html