簡體   English   中英

Heroku 版本上的“=?= 未知錯誤”表示什么?

[英]What does "=!= Unknown error" indicate on Heroku build?

我有一個web應用程序在 Heroku 上運行,web 測功機在container堆棧上。 通過我的 app.json 和 heroku.yml 文件添加worker測功機,Heroku 為我的 Review 應用程序日志構建系統:

=== Fetching app code
=!= Unknown error

該應用程序通過 Docker 和 Docker Compose 在本地正確構建。 它一直在 Heroku 上正確構建,直到我修改了heroku.yml文件和app.json文件以添加工人。

我的問題是:

  • "=?= Unknown error" 表示什么,Heroku 堆棧的哪一部分正在拋出它? 我的配置的哪一部分可能導致它?
  • 我該如何調試這個問題?

相關文件:

heroku.yml:

build:
  docker:
    web: Dockerfile
release:
  command:
    - ./release_commands.sh
  image: web
run:
  web:
    command: newrelic-admin run-program python manage.py runserver 0.0.0.0:$PORT
  worker:
    command: newrelic-admin run-program python manage.py rqworker app
    image: web

app.json:

{
  "name": "my-app",
  "stack": "container",
  "formation": {
    "web": {
      "quantity": 1
    },
    "worker": {
      "quantity": 1
    }
  },
  "environments": {
    "review": {
      "formation": {
        "web": {
          "quantity": 1,
          "size": "hobby"
        },
        "worker": {
          "quantity": 1,
          "size": "hobby"
        }
      },
      "addons": [
        "heroku-redis",
        {
          "plan": "heroku-postgresql",
          "options": {
            "version": 13
          }
        }
      ],
      "env": {
        "DEBUG": 1,
        "ENVIRONMENT": "dev",
        "ALLOWED_HOST": ".herokuapp.com",
        "CSRF_TRUSTED_DOMAIN": "*.herokuapp.com"
      }
    }
  }
}

對於下一個遇到此問題的人:這是兩個heroku.yml問題之間的極端案例,由 YAML 訂購引起。

  1. Heroku 期望run.<app>.command是一個數組。 如果不是,Heroku 將拋出解析錯誤(如下)。
  2. Heroku 期望runrelease上面定義。 如果不是,並且條件 (1) 存在, Heroku 將無法拋出解析錯誤,而是拋出Unknown error

如果上述heroku.yml被修改,用戶將看到以下錯誤:

正確訂購heroku.ymlcommand不正確地設置為字符串而不是數組:

build:
  docker:
    web: Dockerfile
run:
  web:
    command: newrelic-admin run-program python manage.py runserver 0.0.0.0:$PORT
  worker:
    command: newrelic-admin run-program python manage.py rqworker app
    image: web
release:
  command:
    - ./release_commands.sh
  image: web

產生構建錯誤:

=== Fetching app code
=!= There were problems parsing your heroku.yml. We've detected the following issues:
run.worker.command needs to be in array format, such as:
run:
  worker:
    command:
      - newrelic-admin run-program python manage.py rqworker app heap braze
    image: web

順序對 YAML 鍵( https://yaml.org/spec/1.2.2/#3221-mapping-key-order )無關緊要。 但是當run定義在release下面,並且沒有進行其他更改時,Heroku 的錯誤 output 看起來像這樣:

=== Fetching app code
=!= Unknown error

因此,此 Heroku 錯誤 output 的一個原因是 YAML 訂購。 左右切換鍵可以解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM