《Git/Gitlab进阶》一:使用docker安裝gitlab-ce

系列文章前言

此 git/gitlab 系列文章,预计会分为 3 个部分

  • gitlab 的安装及常用配置说明

  • Git 入门和高级功能及常见问题的测试与解决

  • gitlab/git 推行使用规范示例

当然不会非常全面,着重于代码托管和合作开发部分。部分章节主用 PPT 说明,可通过相关章节内容去 Github 获取。

虽然目前相关内容很多,不过对于此份内容部分,都是亲自测试并在内部进行了推广测试,比较详实。对于团体希望使用 git/gitlab 管理代码和合作开发,多多少少能有些参考作用;对于个人学习使用 git 和 gitlab,也有更多一点的帮助。

一些测试和功能实现部分,未必是最优解,但的确是一个解,可做参考。

此篇后续十七篇文章,一起入门 git/gitlab 的世界。有问题,大家可一起交流。

如果命令中有诸如 <XXX> 或者 {XXX}的指代,记得把符号一起替换成实际的参数。

Git入门及常用命令、Gitlab用户数据备份与定时备份、gitlab-web基本功能说明、omnibus package安裝gitlab-ce 的cover图源网络。

docker 安装 gitlab-ce

安装 docker

sudo sh -c "$(curl -fsSL https://get.docker.com)" // 或 curl -sSL https://get.docker.com/ | sh
sudo usermod -aG docker $USER

第一行用docker官方提供的script快速安装
第二行将现有的使用者加入docker群组,否则会没有权限操作docker命令。
记得注销账号重登,以获取docker操作权限。
ubuntu18 可能需要重启。

更多 docker 常用指令的简单说明,可参看之前使用 《Ubuntu18.04下docker基本指令和使用docker安装mysql》

安装前的清理

因为重头来过,所以,我们先查看下是否有之前安装过的名叫 gitlab 的容器

docker ps 

此处若没有,则没有 gitlab 的 docker;如果有,则用命令:docker rm gitlab移除

抓取官方 gitlab image 并使用 docker 运行容器

直接终端输入指令

docker pull gitlab/gitlab-ce:latest

pull 可能需要一点时间,取决你下载的网速。

下载成功之后,使用docker images命令可以看到下载的 docker 镜像列表。

使用下载好的 images,创建容器,例如:

docker run --detach \
--hostname 192.168.XX.XX \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab-ce/config:/etc/gitlab \
--volume /srv/gitlab-ce/logs:/var/log/gitlab \
--volume /srv/gitlab-ce/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest

以上配置了:
hostname:gtilab 的访问地址;
publish:映像主机端口和 docker 中访问 gitlab 的端口;
name:docker 容器名称;
restart:是否自动重启;
–volume:设定创建存放配置、日志、数据的文件夹.

在设定的位置(–volume),会生成以下几个文件夹,如下图

其作用可参考以下:

本地位置 容器位置 用途
/srv/gitlab-ce/data /var/opt/gitlab For storing application data
/srv/gitlab-ce/logs /var/log/gitlab For storing logs
/srv/gitlab-ce/config /etc/gitlab For storing the GitLab configuration files

正常的话,在创建完之后,会自动开启,开启成功之后,效果如下图(当看到 STATUS 为 healthy,表明已经正常启动):

登入之前创建 container 时的 hostname,可以查看到,如下图:

首次访问时,需要设定 root 管理员的密码,账号默认为 root,修改密码成功之后,则进入到登入画面,即可输入 root 账号密码,进入查看。

如果需要关闭容器,使用 stop 命令,例如停止/开启已有的 gitlab( 例如 docker name 为 gitlab)

docker stop gitlab  # 停止
docker start gitlab # 开启

如果发现启动不了 docker 的 gitlab,并提示端口 22 已被占用,可能就是 sshd 占用了端口。

关闭 ssh 即可:

/etc/init.d/ssh stop

当然,开启就是

/etc/init.d/ssh start

如果配置有错,需要修改 gitlab 的配置文件gitlab.rb,可是使用命令

sudo docker exec -it gitlab editor /etc/gitlab/gitlab.rb

去打开文件编辑。不过一旦打开了这个文件,就注意给external_url参数,赋予一个有效的值。就是 gitlab 访问地址需要可用。

修改了配置文件,需要重启该容器使其生效:

docker restart gitlab

备份和还原用户数据

手动备份用户数据

目前除了设定了一个 root 账号的密码之外,其它什么都没有,我现在备份一次此时的 gitlab user data,使用指令

docker exec -it gitlab gitlab-rake gitlab:backup:create

备份成功之后,默认位置在存放 data 的路径下,也就是创建并运行容器时的配置路径:/srv/gitlab-ce/data/backups

在 root 权限或者当前用户取得该文件夹权限后,可以看到该文件夹内部文件,gitlab-ce 备份的用户数据的格式例如:

{时间戳10位}_{年_月_日}_{gitlab版本号}_gitlab_backup.tar

或者可直接使用命令行查看:docker exec -it gitlab ls /var/opt/gitlab/backups/

还原备份的文件

备份之后,后续作业如果出现问题,可以还原到这个原始版本;当然,如果定时备份,则可以随时还原到需要的时间节点版本。

还原命令:

docker exec -it gitlab /opt/gitlab/bin/gitlab-rake gitlab:backup:restore BACKUP={时间戳10位}_{年_月_日}_{gitlab版本号}

BACKUP=后面输入需要返回的备份文件名称

注意,gitlab 只能还原版本相同的备份文件,版本不同不能还原。

使用 docker 安装就像是装在了沙盒,不想要了可以直接删除,没有什么顾虑。但是操作起来比较麻烦,毕竟中间隔了一层。用于测试等轻量使用较宜。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容