2017-02-10 2 views
1

DockerfileでHerokuの動的$ PORTを公開するにはどうすればよいですか? heroku container:push web --app=...で私のドッカーコンテナをHerokuにプッシュします。これは機能します。

しかし、私はこれを読んでいます:heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch、私はこれを、私のDockerfileからのポートがHerokuを通して公開されていないかのように解釈します。

これについての情報はありません。 DockerポートをHerokuポートに公開するにはどうしたらいいですか?

これは私のDockerfileです:

FROM alpine:3.3 

ADD binary_file . 

EXPOSE 37780 

CMD ["./binary_file"] 

答えて

1

私は(動的なポートではありません?)あなたができるとは思いません。

私はあなたのアプリで環境変数PORTを使用することになっていると思います。つまり、あなたのアプリはコンテナ内のそのポートにバインドする必要があります。ご提案をお寄せいただきありがとうございますが、しかし、私の特定の場合には、私が使用するポートを定義する機会を持っていない

CMD ["sh", "-c", "/usr/bin/python -m SimpleHTTPServer ${PORT}"] 
+0

:あなたのアプリはPythonのhttpサーバを開始すると、あなたのCMDはこのようなものであるべきと仮定すると

バイナリはコンテナの内部で実行されます。 – Hoetmaaiers

+1

コンテナ内のポートを別のサービスにリダイレクトさせると(つまり、そのサービスがランダムなherokuポートにバインドされ、すべてのトラフィックがアプリの固定ポートにリダイレクトされます) – Salem

+0

これは正当な解決策のように思えますし、忘れ易い方法です。ありがとう@Salem! – Hoetmaaiers

関連する問題