使用 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/

浙公网安备 33010602011771号