GitLab基础:MacOS下容器化方式无法启动问题的记录
发布日期:2021-06-30 20:21:01 浏览次数:2 分类:技术文章

本文共 17174 字,大约阅读时间需要 57 分钟。

昨天验证GitLab的一个功能时,碰到了一个GitLab因空间不足导致的无法启动的问题,实际是因为Docker Desktop的设定限制的原因,这里memo一下。

目录


环境说明

  • OS
liumiaocn:gitlab liumiao$ sw_versProductName:	Mac OS XProductVersion:	10.15.6BuildVersion:	19G73liumiaocn:gitlab liumiao$
  • Docker
liumiaocn:gitlab liumiao$ docker versionClient: Docker Engine - Community Cloud integration  0.1.18 Version:           19.03.13 API version:       1.40 Go version:        go1.13.15 Git commit:        4484c46d9d Built:             Wed Sep 16 16:58:31 2020 OS/Arch:           darwin/amd64 Experimental:      falseServer: Docker Engine - Community Engine:  Version:          19.03.13  API version:      1.40 (minimum version 1.12)  Go version:       go1.13.15  Git commit:       4484c46d9d  Built:            Wed Sep 16 17:07:04 2020  OS/Arch:          linux/amd64  Experimental:     true containerd:  Version:          v1.3.7  GitCommit:        8fba4e9a7d01810a393d5d25a3621dc101981175 runc:  Version:          1.0.0-rc10  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init:  Version:          0.18.0  GitCommit:        fec3683liumiaocn:gitlab liumiao$
  • docker-compose
liumiaocn:gitlab liumiao$ docker-compose versiondocker-compose version 1.27.4, build 40524192docker-py version: 4.3.1CPython version: 3.7.7OpenSSL version: OpenSSL 1.1.1g  21 Apr 2020liumiaocn:gitlab liumiao$

现象摘录

  • docker-compose.yml
liumiaocn:gitlab liumiao$ lsdocker-compose.ymlliumiaocn:gitlab liumiao$ cat docker-compose.yml version: '2'    services:  # Version Control service: Gitlab  gitlab:    image: gitlab/gitlab-ce:12.10.5-ce.0    ports:      - "32001:80"      - "30022:22"      - "443:443"    volumes:      - ./log/:/var/log/gitlab      - ./data/:/var/opt/gitlab      - ./conf/:/etc/gitlab    restart: "no"liumiaocn:gitlab liumiao$ pwd/Users/liumiao/gitlabliumiaocn:gitlab liumiao$
  • 启动命令:docker-compose up

  • 启动提示信息1

gitlab_1  | /opt/gitlab/embedded/bin/runsvdir-start: line 24: ulimit: pending signals: cannot modify limit: Operation not permittedgitlab_1  | /opt/gitlab/embedded/bin/runsvdir-start: line 37: /proc/sys/fs/file-max: Read-only file system
  • 启动提示信息2
gitlab_1  |     Errno::ENOSPC: No space left on device @ dir_s_mkdir - /tmp/prometheus-mmap20201112-959-1xe4n44gitlab_1  |     /opt/gitlab/embedded/service/gitlab-rails/config/initializers/7_prometheus_metrics.rb:18:in `
'
  • 启动提示信息3
gitlab_1  | Multiple failures occurred:gitlab_1  | * Mixlib::ShellOut::ShellCommandFailed occurred in chef run: bash[migrate gitlab-rails database] (gitlab::database_migrations line 54) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'gitlab_1  | ---- Begin output of "bash"  "/tmp/chef-script20201112-31-ygxi0o" ----gitlab_1  | STDOUT: rake aborted!gitlab_1  | Errno::ENOSPC: No space left on device @ dir_s_mkdir - /tmp/prometheus-mmap20201112-959-1xe4n44

原因分析

开始没有注意NO SPACE的信息,第一处其实并不是问题,而且我的SIP都关掉了

liumiaocn:gitlab liumiao$ csrutil statusSystem Integrity Protection status: disabled.liumiaocn:gitlab liumiao$

此时的原因在于HOME满了,从这里看不出来

在这里插入图片描述
df可以看到如下信息,但是此处的100%实际并不是问题,或者说不是此处错误的问题。而且是容器方式启动,容器中的/tmp并不和这里直接关联。

liumiaocn:gitlab liumiao$ df .liumiaocn:gitlab liumiao$ df Filesystem    512-blocks       Used Available Capacity iused      ifree %iused  Mounted on/dev/disk1s5  1953800440   21908784 334021472     7%  488379 9768513821    0%   /devfs                379        379         0   100%     656          0  100%   /dev/dev/disk1s1  1953800440 1589978672 334021472    83% 4042967 9764959233    0%   /System/Volumes/Data/dev/disk1s4  1953800440    6293592 334021472     2%       4 9769002196    0%   /private/var/vmmap auto_home          0          0         0   100%       0          0  100%   /System/Volumes/Data/homeliumiaocn:gitlab liumiao$

Docker Desktop

MacOS下Docker安装是通过Docker Desktop来进行的,确认了一下此处的限制

在这里插入图片描述
然后看了一下本地镜像和容器以及卷的大小,发现应该是此处超过限制了

对应方法

  • 措施1: 调整Disk Image Size
  • 措施2: 删除并释放不用镜像、容器和卷

重新启动之后问题得到了解决。

错误详细信息摘录

liumiaocn:gitlab liumiao$ docker-compose upCreating network "gitlab_default" with the default driverCreating gitlab_gitlab_1 ... doneAttaching to gitlab_gitlab_1gitlab_1  | Thank you for using GitLab Docker Image!gitlab_1  | Current version: gitlab-ce=12.10.5-ce.0gitlab_1  | ...省略gitlab_1  | Preparing services...gitlab_1  | /opt/gitlab/embedded/bin/runsvdir-start: line 24: ulimit: pending signals: cannot modify limit: Operation not permittedgitlab_1  | /opt/gitlab/embedded/bin/runsvdir-start: line 37: /proc/sys/fs/file-max: Read-only file systemgitlab_1  | Starting services...gitlab_1  | Configuring GitLab...gitlab_1  | Starting Chef Client, version 14.14.29gitlab_1  | resolving cookbooks for run list: ["gitlab"]...省略gitlab_1  | Compiling Cookbooks...gitlab_1  | Recipe: gitlab::defaultgitlab_1  |   * directory[/etc/gitlab] action creategitlab_1  |     - change mode from '0755' to '0775'...省略gitlab_1  |   * ruby_block[warn pending postgresql restart] action run (skipped due to only_if)gitlab_1  |   * execute[reload postgresql] action nothing (skipped due to action :nothing)gitlab_1  |   * execute[start postgresql] action nothing (skipped due to action :nothing)gitlab_1  | Recipe: gitlab::database_migrationsgitlab_1  |   * bash[migrate gitlab-rails database] action rungitlab_1  |     [execute] rake aborted!gitlab_1  |               Errno::ENOSPC: No space left on device @ dir_s_mkdir - /tmp/prometheus-mmap20201112-959-1xe4n44gitlab_1  |               /opt/gitlab/embedded/service/gitlab-rails/config/initializers/7_prometheus_metrics.rb:18:in `
'gitlab_1 | /opt/gitlab/embedded/service/gitlab-rails/config/environment.rb:5:in `
'gitlab_1 | /opt/gitlab/embedded/bin/bundle:23:in `load'gitlab_1 | /opt/gitlab/embedded/bin/bundle:23:in `
'gitlab_1 | Tasks: TOP => gitlab:db:configure => environmentgitlab_1 | (See full trace by running task with --trace)gitlab_1 | gitlab_1 | ================================================================================gitlab_1 | Error executing action `run` on resource 'bash[migrate gitlab-rails database]'gitlab_1 | ================================================================================gitlab_1 | gitlab_1 | Mixlib::ShellOut::ShellCommandFailedgitlab_1 | ------------------------------------gitlab_1 | Expected process to exit with [0], but received '1'gitlab_1 | ---- Begin output of "bash" "/tmp/chef-script20201112-31-ygxi0o" ----gitlab_1 | STDOUT: rake aborted!gitlab_1 | Errno::ENOSPC: No space left on device @ dir_s_mkdir - /tmp/prometheus-mmap20201112-959-1xe4n44gitlab_1 | /opt/gitlab/embedded/service/gitlab-rails/config/initializers/7_prometheus_metrics.rb:18:in `
'gitlab_1 | /opt/gitlab/embedded/service/gitlab-rails/config/environment.rb:5:in `
'gitlab_1 | /opt/gitlab/embedded/bin/bundle:23:in `load'gitlab_1 | /opt/gitlab/embedded/bin/bundle:23:in `
'gitlab_1 | Tasks: TOP => gitlab:db:configure => environmentgitlab_1 | (See full trace by running task with --trace)gitlab_1 | STDERR: gitlab_1 | ---- End output of "bash" "/tmp/chef-script20201112-31-ygxi0o" ----gitlab_1 | Ran "bash" "/tmp/chef-script20201112-31-ygxi0o" returned 1gitlab_1 | gitlab_1 | Resource Declaration:gitlab_1 | ---------------------gitlab_1 | # In /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/database_migrations.rbgitlab_1 | gitlab_1 | 54: bash "migrate gitlab-rails database" dogitlab_1 | 55: code <<-EOHgitlab_1 | 56: set -egitlab_1 | 57: log_file="#{node['gitlab']['gitlab-rails']['log_directory']}/gitlab-rails-db-migrate-$(date +%Y-%m-%d-%H-%M-%S).log"gitlab_1 | 58: umask 077gitlab_1 | 59: /opt/gitlab/bin/gitlab-rake gitlab:db:configure 2>& 1 | tee ${log_file}gitlab_1 | 60: STATUS=${PIPESTATUS[0]}gitlab_1 | 61: chown #{account_helper.gitlab_user}:#{account_helper.gitlab_group} ${log_file}gitlab_1 | 62: echo $STATUS > #{db_migrate_status_file}gitlab_1 | 63: exit $STATUSgitlab_1 | 64: EOHgitlab_1 | 65: environment env_variables unless env_variables.empty?gitlab_1 | 66: notifies :run, "execute[clear the gitlab-rails cache]", :immediatelygitlab_1 | 67: dependent_services.each do |svc|gitlab_1 | 68: notifies :restart, svc, :immediatelygitlab_1 | 69: endgitlab_1 | 70: not_if "(test -f #{db_migrate_status_file}) && (cat #{db_migrate_status_file} | grep -Fx 0)"gitlab_1 | 71: only_if { node['gitlab']['gitlab-rails']['auto_migrate'] }gitlab_1 | 72: endgitlab_1 | 73: gitlab_1 | gitlab_1 | Compiled Resource:gitlab_1 | ------------------gitlab_1 | # Declared in /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/database_migrations.rb:54:in `from_file'gitlab_1 | gitlab_1 | bash("migrate gitlab-rails database") dogitlab_1 | action [:run]gitlab_1 | default_guard_interpreter :defaultgitlab_1 | command nilgitlab_1 | backup 5gitlab_1 | interpreter "bash"gitlab_1 | declared_type :bashgitlab_1 | cookbook_name "gitlab"gitlab_1 | recipe_name "database_migrations"gitlab_1 | code " set -e\n log_file=\"/var/log/gitlab/gitlab-rails/gitlab-rails-db-migrate-$(date +%Y-%m-%d-%H-%M-%S).log\"\n umask 077\n /opt/gitlab/bin/gitlab-rake gitlab:db:configure 2>& 1 | tee ${log_file}\n STATUS=${PIPESTATUS[0]}\n chown git:git ${log_file}\n echo $STATUS > /var/opt/gitlab/gitlab-rails/upgrade-status/db-migrate-873248b1f0d3a7a5535771a3a1635803-ed53d560372\n exit $STATUS\n"gitlab_1 | domain nilgitlab_1 | user nilgitlab_1 | not_if "(test -f /var/opt/gitlab/gitlab-rails/upgrade-status/db-migrate-873248b1f0d3a7a5535771a3a1635803-ed53d560372) && (cat /var/opt/gitlab/gitlab-rails/upgrade-status/db-migrate-873248b1f0d3a7a5535771a3a1635803-ed53d560372 | grep -Fx 0)"gitlab_1 | only_if { #code block }gitlab_1 | endgitlab_1 | gitlab_1 | System Info:gitlab_1 | ------------gitlab_1 | chef_version=14.14.29gitlab_1 | platform=ubuntugitlab_1 | platform_version=16.04gitlab_1 | ruby=ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]gitlab_1 | program_name=/opt/gitlab/embedded/bin/chef-clientgitlab_1 | executable=/opt/gitlab/embedded/bin/chef-clientgitlab_1 | gitlab_1 | Recipe: gitlab::gitlab-railsgitlab_1 | * execute[clear the gitlab-rails cache] action rungitlab_1 | [execute] rake aborted!gitlab_1 | Errno::ENOSPC: No space left on device @ dir_s_mkdir - /tmp/prometheus-mmap20201112-1265-1cs70wwgitlab_1 | /opt/gitlab/embedded/service/gitlab-rails/config/initializers/7_prometheus_metrics.rb:18:in `
'gitlab_1 | /opt/gitlab/embedded/service/gitlab-rails/config/environment.rb:5:in `
'gitlab_1 | /opt/gitlab/embedded/bin/bundle:23:in `load'gitlab_1 | /opt/gitlab/embedded/bin/bundle:23:in `
'gitlab_1 | Tasks: TOP => cache:clear => cache:clear:redis => environmentgitlab_1 | (See full trace by running task with --trace)gitlab_1 | gitlab_1 | ================================================================================gitlab_1 | Error executing action `run` on resource 'execute[clear the gitlab-rails cache]'gitlab_1 | ================================================================================gitlab_1 | gitlab_1 | Mixlib::ShellOut::ShellCommandFailedgitlab_1 | ------------------------------------gitlab_1 | Expected process to exit with [0], but received '1'gitlab_1 | ---- Begin output of /opt/gitlab/bin/gitlab-rake cache:clear ----gitlab_1 | STDOUT: gitlab_1 | STDERR: rake aborted!gitlab_1 | Errno::ENOSPC: No space left on device @ dir_s_mkdir - /tmp/prometheus-mmap20201112-1265-1cs70wwgitlab_1 | /opt/gitlab/embedded/service/gitlab-rails/config/initializers/7_prometheus_metrics.rb:18:in `
'gitlab_1 | /opt/gitlab/embedded/service/gitlab-rails/config/environment.rb:5:in `
'gitlab_1 | /opt/gitlab/embedded/bin/bundle:23:in `load'gitlab_1 | /opt/gitlab/embedded/bin/bundle:23:in `
'gitlab_1 | Tasks: TOP => cache:clear => cache:clear:redis => environmentgitlab_1 | (See full trace by running task with --trace)gitlab_1 | ---- End output of /opt/gitlab/bin/gitlab-rake cache:clear ----gitlab_1 | Ran /opt/gitlab/bin/gitlab-rake cache:clear returned 1gitlab_1 | gitlab_1 | Resource Declaration:gitlab_1 | ---------------------gitlab_1 | # In /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/gitlab-rails.rbgitlab_1 | gitlab_1 | 429: execute "clear the gitlab-rails cache" dogitlab_1 | 430: command "/opt/gitlab/bin/gitlab-rake cache:clear"gitlab_1 | 431: action :nothinggitlab_1 | 432: not_if { omnibus_helper.not_listening?('redis') || !node['gitlab']['gitlab-rails']['rake_cache_clear'] }gitlab_1 | 433: endgitlab_1 | 434: gitlab_1 | gitlab_1 | Compiled Resource:gitlab_1 | ------------------gitlab_1 | # Declared in /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/gitlab-rails.rb:429:in `from_file'gitlab_...省略gitlab_1 | Recipe: package::sysctlgitlab_1 | * execute[reload all sysctl conf] action rungitlab_1 | [execute] * Applying /etc/sysctl.d/10-console-messages.conf ...gitlab_1 | * Applying /etc/sysctl.d/10-ipv6-privacy.conf ...gitlab_1 | * Applying /etc/sysctl.d/10-kernel-hardening.conf ...gitlab_1 | * Applying /etc/sysctl.d/10-link-restrictions.conf ...gitlab_1 | sysctl: setting key "kernel.printk": Read-only file systemgitlab_1 | sysctl: setting key "net.ipv6.conf.all.use_tempaddr": Read-only file systemgitlab_1 | sysctl: setting key "net.ipv6.conf.default.use_tempaddr": Read-only file systemgitlab_1 | sysctl: setting key "kernel.kptr_restrict": Read-only file systemgitlab_1 | sysctl: setting key "fs.protected_hardlinks": Read-only file systemgitlab_1 | sysctl: setting key "fs.protected_symlinks": Read-only file systemgitlab_1 | sysctl: setting key "kernel.sysrq": Read-only file systemgitlab_1 | sysctl: setting key "net.ipv4.conf.default.rp_filter": Read-only file systemgitlab_1 | sysctl: setting key "net.ipv4.conf.all.rp_filter": Read-only file systemgitlab_1 | sysctl: setting key "net.ipv4.tcp_syncookies": Read-only file systemgitlab_1 | sysctl: setting key "kernel.yama.ptrace_scope": Read-only file systemgitlab_1 | sysctl: setting key "vm.mmap_min_addr": Read-only file systemgitlab_1 | sysctl: setting key "kernel.sem": Read-only file systemgitlab_1 | sysctl: setting key "kernel.shmall": Read-only file systemgitlab_1 | sysctl: setting key "kernel.shmmax": Read-only file systemgitlab_1 | * Applying /etc/sysctl.d/10-magic-sysrq.conf ...gitlab_1 | * Applying /etc/sysctl.d/10-network-security.conf ...gitlab_1 | * Applying /etc/sysctl.d/10-ptrace.conf ...gitlab_1 | * Applying /etc/sysctl.d/10-zeropage.conf ...gitlab_1 | * Applying /etc/sysctl.d/90-omnibus-gitlab-kernel.sem.conf ...gitlab_1 | * Applying /etc/sysctl.d/90-omnibus-gitlab-kernel.shmall.conf ...gitlab_1 | * Applying /etc/sysctl.d/90-omnibus-gitlab-kernel.shmmax.conf ...gitlab_1 | * Applying /etc/sysctl.d/99-sysctl.conf ...gitlab_1 | * Applying /etc/sysctl.conf ...gitlab_1 | - execute sysctl -e --systemgitlab_1 | gitlab_1 | Running handlers:gitlab_1 | Running handlers completegitlab_1 | There was an error running gitlab-ctl reconfigure:gitlab_1 | gitlab_1 | Multiple failures occurred:gitlab_1 | * Mixlib::ShellOut::ShellCommandFailed occurred in chef run: bash[migrate gitlab-rails database] (gitlab::database_migrations line 54) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'gitlab_1 | ---- Begin output of "bash" "/tmp/chef-script20201112-31-ygxi0o" ----gitlab_1 | STDOUT: rake aborted!gitlab_1 | Errno::ENOSPC: No space left on device @ dir_s_mkdir - /tmp/prometheus-mmap20201112-959-1xe4n44gitlab_1 | /opt/gitlab/embedded/service/gitlab-rails/config/initializers/7_prometheus_metrics.rb:18:in `
'gitlab_1 | /opt/gitlab/embedded/service/gitlab-rails/config/environment.rb:5:in `
'gitlab_1 | /opt/gitlab/embedded/bin/bundle:23:in `load'gitlab_1 | /opt/gitlab/embedded/bin/bundle:23:in `
'gitlab_1 | Tasks: TOP => gitlab:db:configure => environmentgitlab_1 | (See full trace by running task with --trace)gitlab_1 | STDERR: gitlab_1 | ---- End output of "bash" "/tmp/chef-script20201112-31-ygxi0o" ----gitlab_1 | Ran "bash" "/tmp/chef-script20201112-31-ygxi0o" returned 1gitlab_1 | * Mixlib::ShellOut::ShellCommandFailed occurred in delayed notification: execute[clear the gitlab-rails cache] (gitlab::gitlab-rails line 429) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'gitlab_1 | ---- Begin output of /opt/gitlab/bin/gitlab-rake cache:clear ----gitlab_1 | STDOUT: gitlab_1 | STDERR: rake aborted!gitlab_1 | Errno::ENOSPC: No space left on device @ dir_s_mkdir - /tmp/prometheus-mmap20201112-1265-1cs70wwgitlab_1 | /opt/gitlab/embedded/service/gitlab-rails/config/initializers/7_prometheus_metrics.rb:18:in `
'gitlab_1 | /opt/gitlab/embedded/service/gitlab-rails/config/environment.rb:5:in `
'gitlab_1 | /opt/gitlab/embedded/bin/bundle:23:in `load'gitlab_1 | /opt/gitlab/embedded/bin/bundle:23:in `
'gitlab_1 | Tasks: TOP => cache:clear => cache:clear:redis => environmentgitlab_1 | (See full trace by running task with --trace)gitlab_1 | ---- End output of /opt/gitlab/bin/gitlab-rake cache:clear ----gitlab_1 | Ran /opt/gitlab/bin/gitlab-rake cache:clear returned 1gitlab_1 | gitlab_1 | Chef Client failed. 217 resources updated in 01 minutes 33 secondsgitlab_gitlab_1 exited with code 1liumiaocn:gitlab liumiao$

转载地址:https://liumiaocn.blog.csdn.net/article/details/109666447 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:SVN基础:常见问题记录:1
下一篇:DevOps下的安全实施之路: 2020年研发运营安全白皮书

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月18日 01时57分05秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章