我无法使用 docker-compose 启动 gitlab-ce
Posted
技术标签:
【中文标题】我无法使用 docker-compose 启动 gitlab-ce【英文标题】:I can't launch gitlab-ce with docker-compose 【发布时间】:2018-03-09 00:25:09 【问题描述】:我想在我的电脑上安装 GitLab 并学习 Docker。
当我使用时
docker run --hostname monlogiciel.com --publish 443:443 --publish 8000:80 --publish 22:22 --name gitlab --volume ~/dev/docker/gitlab/config:/etc/gitlab --volume ~/dev/docker/gitlab/logs:/var/log/gitlab --volume ~/dev/docker/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
它有效:我可以连接到http://monlogiciel:8000/,Gitlab 就在这里。
我的/etc/hosts
包含
127.0.0.1 localhost monlogiciel.com
但是,当我想使用docker-compose up -d
时,它不起作用。
这是我的 docker-compose:
version: '3.3'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'monlogiciel.com'
ports:
- '8000:80'
- '443:443'
- '22:22'
volumes:
- '~/dev/docker/gitlab/config:/etc/gitlab'
- '~/dev/docker/gitlab/logs:/var/log/gitlab'
- '~/dev/docker/gitlab/data:/var/opt/gitlab'
这有什么问题?
这是日志
gitlab_1 | ==> /var/log/gitlab/unicorn/unicorn_stderr.log <==
gitlab_1 |我,[2017-09-29T10:09:40.311993 #1493] INFO -- : 监听 addr=127.0.0.1:8080 fd=19
gitlab_1 | F,[2017-09-29T10:09:40.314300 #1493] 致命 -- : 添加监听器时出错 addr=/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket
gitlab_1 | Errno::ENAMETOOLONG:文件名太长 - /var/opt/gitlab/gitlab-rails/sockets/gitlab.socket 的连接(2)
gitlab_1 | /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/unicorn-5.1.0/lib/unicorn/socket_helper.rb:122:in initialize'
gitlab_1 | /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/unicorn-5.1.0/lib/unicorn/socket_helper.rb:122:in
new'
gitlab_1 | /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/unicorn-5.1.0/lib/unicorn/socket_helper.rb:122:in bind_listen'
gitlab_1 | /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/unicorn-5.1.0/lib/unicorn/http_server.rb:231:in
listen'
gitlab_1 | /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/unicorn-5.1.0/lib/unicorn/http_server.rb:808:in block in bind_new_listeners!'
gitlab_1 | /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/unicorn-5.1.0/lib/unicorn/http_server.rb:808:in
each'
gitlab_1 | /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/unicorn-5.1.0/lib/unicorn/http_server.rb:808:in bind_new_listeners!'
gitlab_1 | /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/unicorn-5.1.0/lib/unicorn/http_server.rb:130:in
start'
gitlab_1 | /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/unicorn-5.1.0/bin/unicorn:126:in <top (required)>'
gitlab_1 | /opt/gitlab/embedded/bin/unicorn:23:in
load'
gitlab_1 | /opt/gitlab/embedded/bin/unicorn:23:in `'
gitlab_1 |
gitlab_1 | ==> /var/log/gitlab/unicorn/unicorn_stdout.log /var/log/gitlab/gitlab-monitor/current /sidekiq
gitlab_1 |
gitlab_1 | ==> /var/log/gitlab/unicorn/current /var/log/gitlab/unicorn/unicorn_stderr.log /var/log/gitlab/gitlab-monitor/current /数据库
gitlab_1 | 2017-09-29_10:09:45.23931 127.0.0.1 - - [29/Sep/2017:10:09:45 UTC]“获取/处理 HTTP/1.1”200 457
gitlab_1 | 2017-09-29_10:09:45.23962-->/进程
gitlab_1 | 2017-09-29_10:09:56.06482 127.0.0.1 - - [29/Sep/2017:10:09:56 UTC]“GET /sidekiq HTTP/1.1”200 4177
gitlab_1 | 2017-09-29_10:09:56.06511-->/sidekiq
gitlab_1 |
gitlab_1 | ==> /var/log/gitlab/gitlab-rails/production.log /var/log/gitlab/gitlab-monitor/current /数据库
gitlab_1 | 2017-09-29_10:10:00.23730 127.0.0.1 - - [29/Sep/2017:10:10:00 UTC]“获取/处理 HTTP/1.1”200 457
gitlab_1 | 2017-09-29_10:10:00.23766-->/进程
gitlab_1 |
gitlab_1 | ==> /var/log/gitlab/unicorn/current
【问题讨论】:
你能运行 docker-compose up 看看日志在说什么吗? 您的问题是您没有提供任何证书,并且您尝试在撰写中使用https
而不是http
是不是由:environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://monlogiciel.com'
引起的
我尝试不使用environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://monlogiciel.com'
,它可以工作。现在我有另一个问题
当我转到 monlogiciel.com:8000 时,GitLab 没有响应 (502) 糟糕,GitLab 响应时间过长。尝试刷新页面,或返回并再次尝试该操作。如果此问题仍然存在,请联系您的 GitLab 管理员。
【参考方案1】:
问题是由 gitlab.socket(由 unicorn 创建和使用)在已安装的卷路径下引起的,该路径解析为主机文件系统路径过长。
您可以通过修改gitlab配置unicorn['socket'],将gitlab.socket创建路径移到已挂载的卷路径之外来保持原始配置,例如:
版本:'3.3' 服务: GitLab: 图片:“gitlab/gitlab-ce:最新” 重启:总是 主机名:'monlogiciel.com' 环境: GITLAB_OMNIBUS_CONFIG:| unicorn['socket'] = '/opt/gitlab/var/unicorn/gitlab.socket' 端口: - '8000:80' - '443:443' - '22:22' 卷: - '~/dev/docker/gitlab/config:/etc/gitlab' - '~/dev/docker/gitlab/logs:/var/log/gitlab' - '~/dev/docker/gitlab/data:/var/opt/gitlab'【讨论】:
以上是关于我无法使用 docker-compose 启动 gitlab-ce的主要内容,如果未能解决你的问题,请参考以下文章
使用`docker-compose run`时无法调试,但`docker-compose up`有效
无法使用“ docker-compose”连接(桥接)任何数据库
使用docker-compose和https时如何让Visual Studio启动正确的URL
docker-compose 无法以 npm ERR 启动! enoent ENOENT:没有这样的文件或目录,打开'/usr/src/app/package.json'