Public | Automated Build

Last pushed: 9 months ago
Short Description
GitLab-ce 简体中文版 ,https://gitclub.cn
Full Description

支持的 tags 和对应的 Dockerfile



GitLab 中文社区版

这是汉化的 GitLab 社区版 Docker Image,基于官方提供的 Docker Image gitlab/gitlab-ce,以及 Larry Li 的汉化 https://gitlab.com/larryli/gitlab (8.9以前的版本) 和谢航的汉化 https://gitlab.com/xhang/gitlab (8.9 以后的版本) 而制作。

如果碰到汉化问题,欢迎到 https://gitlab.com/xhang/gitlab/issues 来提交 Issue 甚至 Merge Request;如果碰到镜像问题,欢迎到 https://github.com/twang2218/gitlab-ce-zh/issues 来提交 Issue 或 Pull Request。大家的贡献才能让汉化项目变得更好。如果喜欢本项目,不要忘了加星标啊。 ☺

使用

简单运行

如果想简单的运行一下看看,可以执行这个命令:

docker run -d -p 3000:80 twang2218/gitlab-ce-zh:8.14.5

可以将 8.14.5 换成你所需要的版本标签。

启动后就可以通过主机的 3000 端口看到运行结果了,比如用的是本机 Docker 的话,访问:http://localhost:3000 即可。

测试结束后,彻底清除容器可以用命令:

docker rm -fv <容器ID>

这样可以停止、删除容器,并清除数据。

使用 Docker Compose

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

version: '2'
services:
    gitlab:
      image: 'twang2218/gitlab-ce-zh:8.15.0'
      restart: unless-stopped
      hostname: 'gitlab.example.com'
      environment:
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://gitlab.example.com'
          # Add any other gitlab.rb configuration here, each on its own line
      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:8.14.5

如果需要进入容器修改配置文件,可以用 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

testing 镜像

testing 镜像是为了帮助翻译项目制作的 GitLab 镜像,它始终使用最新的翻译结果。

它是比较 xhang 翻译项目v8.15.0 标签和 8-15-stable-zh 分支的差异生成汉化补丁,并基于官方镜像 gitlab/gitlab-ce:8.15.0-ce.0 进行应用汉化结果进行构建的。

测试镜像将会在 8-15-stable-zh 分支 发生改变后 10 分钟内进行镜像构建,从而确保最新的翻译改变可以反映到测试镜像中,方便测试翻译结果。

运行测试镜像和运行其它镜像一样,可以用 docker-compose 的方法,也可以用之前最简命令的方法:

docker pull twang2218/gitlab-ce-zh:testing
docker run -d -p 3000:80 twang2218/gitlab-ce-zh:testing

需要注意的是,这里的 docker pull 是必须的,因为 testing 镜像构建比较频繁,需要确保本地镜像是最新的镜像。如果是 docker-compose,则执行 docker-compose pull 来或取最新镜像。

build.sh 构建脚本

提供了一个脚本可以在不写 Dockerfile 的情况下直接生成特定版本、分支的汉化版本镜像。这样方便测试还在开发的分支,或者尚未进入 twang2218/gitlab-ce-zh 镜像库的镜像。

脚本含 3 个子命令,分别为 branch, tagrun

branch - 构建某个汉化分支的镜像

格式为:./build.sh branch <基础镜像标签> <英文版本标签> <汉化版本分支>

例如:./build.sh branch 8.15.0-ce.0 v8.15.0 8-15-stable-zh

这表明将使用 gitlab/gitlab-ce:8.15.0-ce.0 做为基础镜像,并且使用上游版本标签 v8.15.0 作为对比的基础标签版本,也就是对应于基础镜像版本的标签,然后使用汉化分支 8-15-stable-zh 进行对比,生成汉化补丁,由此构建一个名为 gitlab-ce-zh:8-15-stable-zh 的镜像。

tag - 构建某个汉化标签的镜像

格式为:./build.sh tag <基础镜像标签> <英文版本标签>

例如: ./build.sh tag 8.15.0-ce.0 v8.15.0

这表明将使用 gitlab/gitlab-ce:8.15.0-ce.0 镜像为基础镜像,以 v8.15.0 为基础对比版本,以 v8.15.0-zh 为汉化版本进行对比生成汉化补丁,并构建一个名为 gitlab-ce-zh:v8.15.0-zh 的镜像。

run - 运行某个构建好的镜像

格式为:./build.sh <镜像标签>

例如: ./build.sh run v8.15.0-zh

这将会以命令 docker run -d -P gitlab-ce-zh:v8.15.0-zh 来运行镜像。这里使用的是 -P,因此会随机映射端口。方便测试环境测试,避免和其它端口冲突。

CONTAINER ID        IMAGE                         COMMAND             CREATED             STATUS              PORTS                                                                  NAMES
68e03524b2f2        gitlab-ce-zh:8-15-stable-zh   "/assets/wrapper"   3 seconds ago       Up 1 seconds        0.0.0.0:32776->22/tcp, 0.0.0.0:32775->80/tcp, 0.0.0.0:32774->443/tcp   adoring_bartik

docker ps 的结果可以看出,该运行的容器的 80 端口映射到了宿主的 32775 端口,因此访问 http://<主机IP>:32775 就可以看到运行结果。初次启动会比较慢,要耐心等待。

注意事项

登录

启动 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

相关信息

GitLab Community Edition - Chinese Edition

This is GitLab Community Edition docker image with Chinese translation integrated. The Docker image is based on gitlab/gitlab-ce, and the Chinese translation is based on Larry Li's work https://gitlab.com/larryli/gitlab (pre-8.9) and Xie Hang's work https://gitlab.com/xhang/gitlab (8.9+).

Docker Pull Command
Owner
maikebing
Source Repository

Comments (0)