美文网首页半栈工程师
《Git/Gitlab进阶》一:使用docker安裝gitlab

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

作者: 紫狐挽诗 | 来源:发表于2020-02-14 18:56 被阅读0次

    系列文章前言

    此 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 apt install docker.io
    

    安装完成之后,直接使用 docker 命令,可能会出现权限不足(permission denied)。

    解决方法,将一般用户加入可用:

    sudo usermod –aG docker <username>
    

    设置完之后,一定要注销用户,再登入,才能生效,生效之后。
    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),会生成以下几个文件夹,如下图

    创建的gitlab文件夹

    其作用可参考以下:

    本地位置 容器位置 用途
    /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,表明已经正常启动):

    docker正常启动gitlab容器

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

    gitlab初始首页

    首次访问时,需要设定 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 安装就像是装在了沙盒,不想要了可以直接删除,没有什么顾虑。但是操作起来比较麻烦,毕竟中间隔了一层。用于测试等轻量使用较宜。

    相关文章

      网友评论

        本文标题:《Git/Gitlab进阶》一:使用docker安裝gitlab

        本文链接:https://www.haomeiwen.com/subject/mlzlfhtx.html