2017-11-02 3 views
2

私はedeliverでawsにデプロイしています。デプロイメントは正常に動作しますが、curl localhost:8888でコンソールのサイトにアクセスしようとすると、connection refusedエラーが発生します。問題設定プロダクションポート番号 - (RuntimeError)は、PORT環境変数が設定されると予想しています

./rel/bin/app_name consoleでアプリを起動しようとすると、(RuntimeError) expected the PORT environment variable to be setと表示されます。しかし私のconfig/prod.exsはこのように見えます。

use Mix.Config 

config :elixir_deploy, ElixirDeployWeb.Endpoint, 
    load_from_system_env: true, 
    http: [port: 8888], 
    ssl: false, 
    url: [host: "example.com", port: 80], 
    cache_static_manifest: "priv/static/cache_manifest.json" 

config :logger, level: :info 

import_config "prod.secret.exs" 

私はここで何が欠けていますか?手動で開始する前にPORT=8888を設定すると機能しますが、私はむしろedeliverで自動的に起動します

+0

あなたが後で設定でHTTPポートの設定を上書きしていませんか? – Dogbert

+0

@Dogbertはい、唯一の他の行は、最初に 'use Mix.Config'、最後に' config:logger、level::info'、 'import_config" prod.secret.exs "'です。 –

答えて

4

load_from_system_envからfalseに設定するか、その行を削除する必要があります。それがtrueの場合、Phoenixのデフォルトの生成番号endpoint.exPORTの値を使用します。見つからない場合は、エラーが発生します。

if config[:load_from_system_env] do 
    port = System.get_env("PORT") || raise "expected the PORT environment variable to be set" 
    {:ok, Keyword.put(config, :http, [:inet6, port: port])} 
else 
    {:ok, config} 
end 

Source

+0

私はそれが次の行で動くようにしようとして忙しすぎました。木々のためのフォレストを見ることができませんでした。ありがとう。 –

関連する問題