美文网首页DockerDocker容器
利用docker安装中文版GitLab

利用docker安装中文版GitLab

作者: 卑微幻想家 | 来源:发表于2019-08-27 07:38 被阅读0次

    GitLab是什么

    GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务和GitHub差不多,只不过是开源的。

    为什么用docker安装GitLab

    docker真是个好东西,部署环境,以及软件安装都特别方便,所以我选择使用docker来安装GitLab。这里我选择安装中文版的GitLab。

    一、安装docker

    docker安装可以参照我之前的文章基于脚本安装docker

    二、使用 Docker Compose

    正常部署时,可以使用 Docker Compose 来配置启动。建立一个 docker-compose.yml,内容如下:

    version: '2'
    services:
        gitlab:
          image: 'twang2218/gitlab-ce-zh:11.1.4'
          restart: unless-stopped
          hostname: 'gitlab.example.com'
          environment:
            TZ: 'Asia/Shanghai'
            GITLAB_OMNIBUS_CONFIG: |
              external_url 'http://gitlab.example.com'
              gitlab_rails['time_zone'] = 'Asia/Shanghai'
              # 需要配置到 gitlab.rb 中的配置可以在这里配置,每个配置一行,注意缩进。
              # 比如下面的电子邮件的配置:
              # gitlab_rails['smtp_enable'] = true
              # gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
              # gitlab_rails['smtp_port'] = 465
              # gitlab_rails['smtp_user_name'] = "xxxx@xx.com"
              # gitlab_rails['smtp_password'] = "password"
              # gitlab_rails['smtp_authentication'] = "login"
              # gitlab_rails['smtp_enable_starttls_auto'] = true
              # gitlab_rails['smtp_tls'] = true
              # gitlab_rails['gitlab_email_from'] = 'xxxx@xx.com'
          ports:
            - '80:80'
            - '443:443'
            - '22:22'
          volumes:
            - config:/etc/gitlab
            - data:/var/opt/gitlab
            - logs:/var/log/gitlab
    volumes:
        config:
        data:
        logs:
    

    然后使用命令 docker-compose up -d 来启动,停止服务使用 docker-compose down
    如果你的服务器有域名,将上面的 gitlab.example.com 替换为实际域名。
    实验时,也可以直接修改 /etc/hosts方便测试。比如:

    127.0.0.1   gitlab.example.com
    

    三、使用 Docker 命令启动

    直接使用 docker 命令要比使用 docker-compose 繁琐一些,但是可以达到一样的效果。
    首先,Docker 容器数据应该存储于卷中,在这里我们使用最简单的本地命名卷:

    • gitlab-config 存储 GitLab 配置信息
    • gitlab-data 存储数据库
    • gitlab-logs 存储日志
      然后,我们需要创建自定义网络,从而让容器运行于独立的网络中,区别于默认网桥。
    docker network create gitlab-net
    

    准备好后,开始运行 Gitlab 容器:

    docker run -d \
        --hostname gitlab.example.com \
        -p 80:80 \
        -p 443:443 \
        -p 22:22 \
        --name gitlab \
        --restart unless-stopped \
        -v gitlab-config:/etc/gitlab \
        -v gitlab-logs:/var/log/gitlab \
        -v gitlab-data:/var/opt/gitlab \
        --network gitlab-net \
        twang2218/gitlab-ce-zh:11.1.4
    

    如果需要进入容器修改配置文件,可以用 docker exec 命令进入容器:

    $ docker exec -it gitlab bash
    root@09f6e32c528c:/# vi /etc/gitlab/gitlab.rb
    root@09f6e32c528c:/# gitlab-ctl reconfigure
    Starting Chef Client, version 12.12.15
    resolving cookbooks for run list: ["gitlab"]
    ...
    

    如需停止服务,直接运行 docker stop gitlab

    如需卸载服务及相关内容,可以执行:

    docker stop gitlab
    docker rm gitlab
    docker network rm gitlab-net
    docker volume rm gitlab-config gitlab-datagitlab-logs
    

    注意事项

    登录

    启动 GitLab 后,第一次访问时,会要求设置 root 用户的密码,密码不得小于8位。设置好后,就可以登录使用了。
    对于早期版本,可以使用默认的 root 用户密码 5iveL!fe 登录。

    配置 SSH 端口

    这里运行示例中,无论是使用 docker-compose.yml 还是 docker run 都使用的是 SSH 默认端口 22 去映射容器 SSH 端口。其目的是希望比较自然的使用类似 git@gitlab.example.com:myuser/awesome-project.git 的形式来访问服务器版本库。但是,宿主服务器上默认的 SSH 服务也是使用的 22 端口。因此默认会产生端口冲突。

    修改宿主的 SSH 端口

    修改宿主的 SSH 端口,使用非 22 端口。比如修改 SSHD 配置文件,/etc/ssh/sshd_config,将其中的 Port 22 改为其它端口号,然后 service sshd restart。这种方式比较推荐,因为管理用的宿主 SSH 端口改成别的其实更安全。

    修改容器的 SSH 端口

    修改容器的端口映射关系,比如将 -p 22:22 改为 -p 2222:22,这样 GitLab 的 SSH 服务端口将是 2222。这样做会让使用 GitLab 的 SSH 克隆、提交代码有些障碍。这种情况要改变用户使用 Git 的链接方式。
    要从之前的:

    git clone git@gitlab.example.com:myuser/awesome-project.git
    

    改为明确使用 ssh:// 的 URL 方式。

    git clone ssh://git@gitlab.example.com:2222/myuser/awesome-project.git
    

    相关文章

      网友评论

        本文标题:利用docker安装中文版GitLab

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