基于docker安装gitlab

10920阅读 2评论2017-02-20 刘一痕
分类:系统运维

 采用docker镜像安装GitLab

3.2.1. 简介

3.2.2. 架构图

docker_gitlab_arch

3.2.3. 下载镜像

3.2.4. 安装

3.2.4.1. 启动redis

3.2.4.2. 启动mysql

3.2.4.3. 启动gitlab

这一步骤会耗时几分钟,因为这一步会做一些初始化操作,例如导入数据表结构等。可以通过docker logs gitlab来查看安装过程。同理,mysql、redis容器也可以通过docker logs gitlab_mysql和docker logs gitlab_redis来查看启动信息。

注意:上面创建的3个容器必须位于同一台宿主上,因为–link gitlab_mysql:mysql –link gitlab_redis:redisio就是将同个宿主上的容器做链接

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

3.2.4.4. 给gitlab容器配置IP

在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. 安装已完成,可以打开页面

3.2.4.6. 加入开机启动

4. GitLab API wrappers

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

5. GitLab使用的FAQ

5.1. git代码发布支持2种方法:ssh和http(s)

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

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

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

5.5. gitlab默认时区是UTC

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

6. GitLab维护

6.1. 数据路径、日志路径

6.2. 高可用

上一篇:互联网基础应用架构构建(基于docker)
下一篇:golang测试技术

文章评论