V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
honglongmen
V2EX  ›  程序员

自己安装的 gitlab 的 422 怪问题

  •  
  •   honglongmen · 2019-02-09 14:41:30 +08:00 · 9398 次点击
    这是一个创建于 2148 天前的主题,其中的信息可能已经有所发展或是发生改变。

    已经困惑很久了:

    我用 docker 装了个 gitlab, 通过 nginx 反代来访问(并通过 let's encrypt 拿到证书),总是在刚安装开始几个小时可以正常使用, 但是几个小时后登陆总是提示 422,把 gitlab.com 基本抄了个遍, 初步判断是: 是 /assets/webpack 文件夹下的内容加载不了, 这个是由于 rails 里面的 CSP 安全策略, 不加载 js, 不过我们可以通过配置 nginx, 让 /assets 为静态站点目录, 即在 nginx 配置文件中加上:

    location /assets {
        root /opt/gitlab/embedded/service/gitlab-rails/public;
        index index.html;
    }
    

    但是在 ngixn(非 gitlab 的 nginx 增加了上述配置后,仍然无效, reconfigure 之类命令肯定运行了,所以不要问这个了.

    请问还有哪里会有问题?

    16 条回复    2019-02-12 20:37:09 +08:00
    GuryYu
        1
    GuryYu  
       2019-02-09 19:59:09 +08:00
    虽然不太清楚楼主这个错误的具体原因, 但是可以分享一下我搭建 docker GitLab 的方法.

    hostname xx.xx.xx 需要替换为楼主的域名, 容器启动好之后(用 docker logs 看日志), 使用 nginx https 反代访问.(不经过反代 直接访问似乎会报错)
    ```
    CONTAINER="tools-git-gitlab" && \
    mkdir -p ~/docker/"$CONTAINER"/config && \
    mkdir -p ~/docker/"$CONTAINER"/logs && \
    mkdir -p ~/docker/"$CONTAINER"/data && \
    docker run \
    --name "$CONTAINER" \
    --hostname xx.xx.xx \
    -idt -p 2222:2222 -p 80:80 -p 443:443 \
    --env GITLAB_OMNIBUS_CONFIG="external_url 'https://xx.xx.xx/'; gitlab_rails['gitlab_shell_ssh_port'] = 2222; letsencrypt['enable'] = false; nginx['listen_port'] = 80; nginx['listen_https'] = false; nginx['proxy_set_headers'] = { 'X-Forwarded-Proto' => 'https', 'X-Forwarded-Ssl' => 'on' };" \
    -e TZ=Asia/Shanghai \
    -v ~/docker/"$CONTAINER"/config:/etc/gitlab \
    -v ~/docker/"$CONTAINER"/logs:/var/log/gitlab \
    -v ~/docker/"$CONTAINER"/data:/var/opt/gitlab \
    --log-opt max-size=100m \
    --log-opt max-file=1 \
    --restart always \
    gitlab/gitlab-ce:11.7.5-ce.0
    ```
    mayx
        2
    mayx  
       2019-02-09 22:04:05 +08:00 via Android
    看成了 422 个怪问题
    sobigfish
        3
    sobigfish  
       2019-02-10 16:36:21 +08:00
    @mayx #2 一般人看到 4XX 5XX 都会当成 http error code 而不是其他什么,虽然 422 不常见
    sobigfish
        4
    sobigfish  
       2019-02-10 16:45:41 +08:00
    抱歉,是 HTTP status* code
    selinaspy
        5
    selinaspy  
       2019-02-11 00:06:54 +08:00 via iPhone
    我私人和公司里都是 docker 版,用很久了都没出现过你这个问题,用官方推荐的修复权限的命令试试?
    honglongmen
        6
    honglongmen  
    OP
       2019-02-11 00:13:31 +08:00
    @selinaspy 都试过了, 才会来这里发帖寻求帮助啊. 你是用 nginx 反代的吗?
    drackzy
        7
    drackzy  
       2019-02-11 05:13:54 +08:00
    你是苹果系统?
    ice000
        8
    ice000  
       2019-02-11 08:28:55 +08:00
    root 管理员项目权限分配用户,应该可以解决这个问题
    selinaspy
        9
    selinaspy  
       2019-02-11 11:16:49 +08:00 via iPhone
    @honglongmen 是的呀,都是照官方文档做的
    honglongmen
        10
    honglongmen  
    OP
       2019-02-11 12:18:51 +08:00
    @ice000 和这个没关系, 可能是阿里云 cdn 有问题.
    honglongmen
        11
    honglongmen  
    OP
       2019-02-11 12:20:43 +08:00
    @selinaspy 可否把你的官方文档发给我看看?
    honglongmen
        12
    honglongmen  
    OP
       2019-02-12 03:34:10 +08:00
    @selinaspy 我是修改 root 为另外个用户名出现这个问题, 估计问题出现在这里
    selinaspy
        13
    selinaspy  
       2019-02-12 11:30:18 +08:00
    @honglongmen 我也改了 root 的名字,没问题啊,然后官方文档是这个 https://docs.gitlab.com/omnibus/docker/
    honglongmen
        14
    honglongmen  
    OP
       2019-02-12 17:10:27 +08:00
    @selinaspy 昨晚重装测试了下, 我新建个管理员,然后删除默认的 root,好像就没问题了.

    具体还在查看.
    selinaspy
        15
    selinaspy  
       2019-02-12 18:54:33 +08:00 via iPhone
    @honglongmen 日志开 debug 看看吧,这瞎摸也不好弄
    honglongmen
        16
    honglongmen  
    OP
       2019-02-12 20:37:09 +08:00
    @selinaspy 现在新问题,我怀疑登录那里 homepage 写错了,导致无法打开, 但是没找到在哪里修改
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2833 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:10 · PVG 22:10 · LAX 06:10 · JFK 09:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.