gitlab部署在二级目录并使用Web-IDE

在很多时候只有域名 xxxx.com 无法使用 gitlab.xxxx.com 这样的域名,所以部署在 https://xxxx.com/gitlab/ 这里,但是这个很多小问题,而且gitlab已经支持这样的二级目录

以下内容需修改

  • 安装地址 /data/docker_apps/gitlab-ce/
  • 域名 xxxx.com
  • 本地部署端口 208
  • 发件人 xxxx@163.com
  • 邮箱密钥 xxxxxxxxxxxxxx

使用docker部署

我这里把gitlab放在了 /data/docker_apps/gitlab-ce/

1
2
# 最新版是这样
docker compose up -d

docker-compose的部署文件如下,其中 xxxx.com 修改为自己的域名

关键在于 external_url 'https://xxxx.com/gitlab',这个也可以在配置里修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
version: "1"

services:
gitlab:
# https://hub.docker.com/r/gitlab/gitlab-ce/tags
image: docker.io/gitlab/gitlab-ce:17.10.4-ce.0
container_name: gitlab
restart: always
# xxxx.com 需要修改为真实域名
hostname: 'xxxx.com'
# https://xxxx.com 需要修改为真实域名
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://xxxx.com/gitlab'
networks:
- icpcs
ports:
# 注意https必须443
- '208:443'
- '230:22'
volumes:
# 配置详细见下面
- /data/docker_apps/gitlab-ce/config:/etc/gitlab
- /data/docker_apps/gitlab-ce/logs:/var/log/gitlab
- /data/docker_apps/gitlab-ce/data:/var/opt/gitlab

networks:
icpcs:
driver: bridge
ipam:
config:
- subnet: 10.13.0.0/16
gateway: 10.13.0.1

部分配置可以再次修改

1
2
# 与上面安装地址和映射地址有关
vim /data/docker_apps/gitlab-ce/config/gitlab.rb

参考如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 在docker里配置了,这里可以不配置 external_url
external_url 'https://xxxx.com/gitlab'

# git clone 时的地址
gitlab_rails['gitlab_ssh_host'] = '你的ip地址或者其他配置'
# git clone 时的端口
gitlab_rails['gitlab_shell_ssh_port'] = 230


gitlab_rails['backup_keep_time'] = 7776000

# 根据自己的内存和cpu核心调整
sidekiq['concurrency'] = 10
postgresql['shared_buffers'] = "10GB"
postgresql['max_worker_processes'] = 16
puma['per_worker_max_memory_mb'] = 2048
puma['worker_processes'] = 10

# 邮件发送的发件人,这里是163邮箱 xxxx@163.com
gitlab_rails['smtp_password'] = "xxxxxxxxxxxxxx"
gitlab_rails['smtp_user_name'] = "xxxx@163.com"
gitlab_rails['gitlab_email_from'] = 'xxxx@163.com'
gitlab_rails['gitlab_email_reply_to'] = 'xxxx@163.com'

gitlab_rails['smtp_domain'] = "smtp.163.com"
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_pool'] = false
gitlab_rails['gitlab_email_enabled'] = true

nginx配置

转发二级目录,需要注意的是

proxy_pass 传递原始URI https://localhost:208;,如果后面加上了 /gitlab 使用Web-IDE会无法显示文件:看这里

在nginx配置添加如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
location /gitlab {
# 安全头配置
add_header Strict-Transport-Security "max-age=15552000; includeSubDomains; preload" always;
add_header X-Download-Options noopen;

# 关键:传递原始URI,如果后面加上了 `/gitlab` 使用Web-IDE会无法显示文件
proxy_pass https://localhost:208;

# 请求头配置
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

# 性能优化
proxy_http_version 1.1;
proxy_buffering off;
proxy_redirect off;
}

配置生效

1
nginx -s reload

本文作者:yuhldr
本文地址: https://yuhldr.github.io/posts/b59d8d5e.html
版权声明:转载请注明出处!