下面是我的配置
version: "3.8"
services:
gitlab:
image: gitlab/gitlab-ce:17.11.0-ce.0
container_name: gitlab
restart: always
hostname: '192.168.0.60'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.0.60:10080'
gitlab_rails['gitlab_shell_ssh_port'] = 10022
ports:
- '10080:80'
- '10443:443'
- '10022:22'
volumes:
- './config:/etc/gitlab'
- './logs:/var/log/gitlab'
- './data:/var/opt/gitlab'
shm_size: '256m'
启动后,容器也没说状态异常,日志也没显示错误,就是打印一堆日志,听说要等15分钟,我等了一天。
服务器配置如下
4 CPU
8GB 内存
50GB 固态硬盘
网上说external_url 端口需要配置成80,我试过了,而且进入容器请求了也是无法访问。
相关软件版本
zc@ubuntu:~/docker/gitlab$ sudo docker -v
Docker version 26.1.3, build 26.1.3-0ubuntu1.1
zc@ubuntu:~/docker/gitlab$ sudo docker-compose -v
docker-compose version 1.29.2, build unknown
zc@ubuntu:~/docker/gitlab$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.10
Release: 24.10
Codename: oracular
我删除了映射的目录,重新运行的
1.docker状态正常的
9e6abd95adf0 gitlab/gitlab-ce:17.11.0-ce.0 “/assets/init-contai…” 22 minutes ago Up 21 minutes (healthy) 0.0.0.0:10022->22/tcp, :::10022->22/tcp, 0.0.0.0:10080->80/tcp, :::10080->80/tcp, 0.0.0.0:10443->443/tcp, :::10443->443/tcp gitlab
2.打印的日志
很大一坨json就不贴了
==> /var/log/gitlab/gitlab-exporter/current <==
2025-04-21_12:23:07.70778 ::1 – – [21/Apr/2025:12:23:07 UTC] “GET /ruby HTTP/1.1” 200 1094
2025-04-21_12:23:07.70785 – -> /ruby
2025-04-21_12:23:15.16022 ::1 – – [21/Apr/2025:12:23:15 UTC] “GET /database HTTP/1.1” 200 1778
2025-04-21_12:23:15.16027 – -> /database
3.容器里面的状态
root@192:/# gitlab-ctl status
run: alertmanager: (pid 1322) 1648s; run: log: (pid 1025) 1710s
run: gitaly: (pid 1281) 1651s; run: log: (pid 544) 1897s
run: gitlab-exporter: (pid 1293) 1651s; run: log: (pid 953) 1727s
run: gitlab-kas: (pid 745) 1880s; run: log: (pid 764) 1877s
run: gitlab-workhorse: (pid 1255) 1652s; run: log: (pid 907) 1739s
run: logrotate: (pid 482) 1911s; run: log: (pid 494) 1908s
run: nginx: (pid 1273) 1652s; run: log: (pid 925) 1733s
run: postgres-exporter: (pid 1339) 1648s; run: log: (pid 1056) 1702s
run: postgresql: (pid 570) 1887s; run: log: (pid 584) 1885s
run: prometheus: (pid 1305) 1650s; run: log: (pid 999) 1716s
run: puma: (pid 825) 1754s; run: log: (pid 836) 1751s
run: redis: (pid 499) 1905s; run: log: (pid 512) 1902s
run: redis-exporter: (pid 1295) 1651s; run: log: (pid 975) 1721s
run: sidekiq: (pid 841) 1748s; run: log: (pid 850) 1747s
run: sshd: (pid 37) 1937s; run: log: (pid 36) 1937s
我分析一下几个可能的原因:
- GitLab确实需要时间初始化,但不应该需要一天
- 配置文件可能有问题
- 容器内部可能遇到了某些问题
建议您尝试这些步骤:
- 检查容器是否真的在运行:
docker ps | grep gitlab
- 查看最近的日志,找出可能的错误:
docker logs --tail 100 gitlab
- 尝试进入容器内部看看服务状态:
docker exec -it gitlab bash gitlab-ctl status
- 如果以上都不行,可以尝试完全删除容器和数据,从头开始:
docker-compose down sudo rm -rf ./config ./logs ./data docker-compose up -d
- 也可以尝试降低GitLab版本,比如使用16.x版本而不是17.x
操作后告知一下结果,我才能去判断是什么问题导致的
.yml里面缺个version属性, 是截图中忘了还是没有写?要不然默认成低版本,配置可能都不起作用