代码之家  ›  专栏  ›  技术社区  ›  Nate-Wilkins

Gitlab Docker实例启动权限被拒绝。rb

  •  0
  • Nate-Wilkins  · 技术社区  · 4 年前

    我正在试着运行 gitlab-ce docker image和我的许可被拒绝的问题 secrets_helper.rb .从启动日志中提取以下内容:

    ================================================================================
    Recipe Compile Error in /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/default.rb
    ================================================================================
    
    Errno::EPERM
    ------------
    Operation not permitted @ rb_file_chmod - /etc/gitlab/gitlab-secrets.json
    
    Cookbook Trace:
    ---------------
      /opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/helpers/secrets_helper.rb:121:in `chmod'
      /opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/helpers/secrets_helper.rb:121:in `block in write_to_gitlab_secrets'
      /opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/helpers/secrets_helper.rb:119:in `open'
      /opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/helpers/secrets_helper.rb:119:in `write_to_gitlab_secrets'
      /opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/helpers/settings_helper.rb:163:in `generate_secrets'
      /opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/helpers/settings_helper.rb:167:in `generate_config'
      /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/config.rb:26:in `from_file'
      /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/default.rb:26:in `from_file'
    
    Relevant File Content:
    ----------------------
    /opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/helpers/secrets_helper.rb:
    
    There was an error running gitlab-ctl reconfigure:
    
    Operation not permitted @ rb_file_chmod - /etc/gitlab/gitlab-secrets.json
    
    114:  
    115:    def self.write_to_gitlab_secrets
    116:      secret_tokens = gather_gitlab_secrets
    117:  
    118:      if File.directory?('/etc/gitlab')
    119:        File.open('/etc/gitlab/gitlab-secrets.json', 'w', 0600) do |f|
    120:          f.puts(Chef::JSONCompat.to_json_pretty(secret_tokens))
    121>>         f.chmod(0600)
    122:        end
    123:      end
    124:  
    125:      nil
    126:    end
    127:  end
    128:  
    

    我用以下内容创建了容器:

    docker run --detach \
      --hostname domain.name.com \
      --publish 4443:443 \
      --publish 4080:80 \
      --publish 4022:22 \
      --name gitlab \
      --restart always \
      --volume /mnt/nfs-1/gitlab/config:/etc/gitlab \
      --volume /mnt/nfs-1/gitlab/logs:/var/log/gitlab \
      --volume /mnt/nfs-1/gitlab/data:/var/opt/gitlab \
      gitlab/gitlab-ce:latest
    

    权限如下所示:

    /mnt Rancher /mnt

    /mnt/nfs-1

    drwxrwx---    5 1020     1020             5 Jun  2 23:13 gitlab
    

    /mnt/nfs-1/gitlab

    drwxrwx---    2 1020     1020            10 Jun  2 23:15 config
    drwxrwx---    2 1020     1020             2 Jun  2 23:13 data
    drwxrwx---    4 1020     1020             4 Jun  2 23:15 logs
    

    这个 /mnt/nfs-1 是使用rancher的配置设置的NFS共享。

    # /var/lib/rancher/conf/cloud-config.d/nfs.yml
    
    rancher:
      services:
        nfs:
          image: walkerk1980/rancher-nfs-client
          labels:
            io.rancher.os.after: console, preload-user-images
            io.rancher.os.scope: system
          net: host
          privileged: true
          restart: always
          volumes:
          - /usr/bin/iptables:/sbin/iptables:ro
          - /mnt/nfs-1:/mnt/nfs-1:shared
          environment:
            SERVER: nas.stark.local
            SHARE: /mnt/pool/data_set
            MOUNT_OPTIONS: rw,noatime,nolock,soft,_netdev,auto
    

    这个 NFS 文件共享(在FreeNAS中)如下所示:

    FreeNAS Permissions NFS

    然而,那里的解决方案对我不起作用,我也不太确定问题出在哪里 git 用户存在。我假设它存在于运行图像中。

    我还试图降级/升级/不同版本/ee版本,但有相同的问题,所以我认为这与卷有关?

    外部资源

    0 回复  |  直到 4 年前
    推荐文章