使用 Docker 安装 GitLab CE 中文版(非官方镜像)

话不多说,直接上 docker-compose.yaml,前提是已经装好 docker 和 docker-compose

# 说明:此文件用于在 Docker 中部署 GitLab CE 中文版
services:
  gitlab:
    image: twang2218/gitlab-ce-zh:latest
    container_name: gitlab
    restart: always
    hostname: 'gitlab.xxx.com'   # 你的域名或 IP
    environment:
      TZ: "Asia/Shanghai"
      # 添加 Gitlab-CE 自己的配置(相当于修改 /etc/gitlab/gitlab.rb 配置文件)
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.xxx.com'                 # 如果使用宿主机的 nginx 做反代和SSL/TLS,此处必须使用 http://
        gitlab_rails['gitlab_shell_ssh_port'] = 2222         # SSH 端口:访问宿主机的 2222,会连接到容器的 22 端口
    # 端口映射:前者是主机,后者是容器
    ports:
      - '80:80'          # HTTP (如果使用宿主机 nginx 做反代,此处需要修改端口,例如:8080:80)
      - '443:443'        # HTTPS(如果使用宿主机 nginx 做反代和SSL/TLS,此行就不需要了)
      - '2222:22'        # SSH(docker 容器内的 sshd 也会映射(占用)一个宿主机端口,所以此处不能使用22,否则会报错:22端口已被占用)
    volumes:
      - ./etc:/etc/gitlab         # gitlab 配置目录
      - ./data:/var/opt/gitlab    # gitlab 日志目录
      - ./logs:/var/log/gitlab    # gitlab 数据目录

首次运行起来之后,需要设置 root 账号密码

docker logs <容器名称或ID> | grep 'Password'

通过 frp 内网穿透搭建的 Gitlab 容器,接下来可能会遇到一个坑:push 会遇到各种失败(即便你有权限、即便你已经把公钥放到 Gitlab 的 ssh key 设置里面了),解决方案:修改本机的 ~/.ssh/config 文件,增加如下内容:

Host gitlab.xxx.com               # 这里必须使用 gitlab.xxx.com,否则无效
    HostName gitlab.xxx.com 
    User root 
    Port 2222

    # 如果你没有使用 frp 进行内网穿透,就不需要下面这个配置
    # ProxyCommand 用 socat 实现 HTTP CONNECT 代理
    ProxyCommand socat - PROXY:xxx.com:%h:%p,proxyport=7002

参考这篇文章:https://www.cnblogs.com/isky0824/p/19063010
官方参考文档:https://docs.gitlab.com/install/docker/installation/

posted @ 2025-08-22 19:24  江南烟雨梦  阅读(92)  评论(0)    收藏  举报