docker-compose运行不起来gitlab-ce怎么回事啊?

下面是我的配置

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

阅读 1.6k
4 个回答

我分析一下几个可能的原因:

  • GitLab确实需要时间初始化,但不应该需要一天
  • 配置文件可能有问题
  • 容器内部可能遇到了某些问题

建议您尝试这些步骤:

  1. 检查容器是否真的在运行:

    docker ps | grep gitlab
  2. 查看最近的日志,找出可能的错误:

    docker logs --tail 100 gitlab
  3. 尝试进入容器内部看看服务状态:

    docker exec -it gitlab bash
    gitlab-ctl status
  4. 如果以上都不行,可以尝试完全删除容器和数据,从头开始:

    docker-compose down
    sudo rm -rf ./config ./logs ./data
    docker-compose up -d
  5. 也可以尝试降低GitLab版本,比如使用16.x版本而不是17.x

操作后告知一下结果,我才能去判断是什么问题导致的

.yml里面缺个version属性, 是截图中忘了还是没有写?要不然默认成低版本,配置可能都不起作用

新手上路,请多包涵

确保你的gitlab镜像正常可以拉取成功。

ports:
   - '10080:10080'

如上图所示,端口映射改成这样试试

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进