に結合し、私は中に数行を立ち往生しています。は、IPは、私はOpenshift 2から3に移行しようとしていますOpenshift 3 Pythonの
を実行しているのpython3ピラミッドウェイトレスを持つサーバーではOpenshift Pyramidstarter templateからコピーとして。 問題はos.environ
の異なるキーから発生します。
from waitress import serve
print('Binding to '+os.environ['HOME_SERVICE_HOST']) #fomerly OPENSHIFT_PYTHON_IP
print("Starting Waitress.")
serve(app, host=os.environ['HOME_SERVICE_HOST'], port=8080, threads=50)
これは私がオプションのいくつかの他のを試してみました
Binding to 172.30.224.51
Starting Waitress.
Traceback (most recent call last):
File "app.py", line 34, in <module>
serve(app, host=ip, port=port, threads=50)
File "/opt/app-root/lib/python3.5/site-packages/waitress-1.0.2-py3.5.egg/waitress/__init__.py", line 11, in serve
server = _server(app, **kw)
File "/opt/app-root/lib/python3.5/site-packages/waitress-1.0.2-py3.5.egg/waitress/server.py", line 85, in create_server
sockinfo=sockinfo)
File "/opt/app-root/lib/python3.5/site-packages/waitress-1.0.2-py3.5.egg/waitress/server.py", line 182, in __init__
self.bind_server_socket()
File "/opt/app-root/lib/python3.5/site-packages/waitress-1.0.2-py3.5.egg/waitress/server.py", line 294, in bind_server_socket
self.bind(sockaddr)
File "/opt/rh/rh-python35/root/usr/lib64/python3.5/asyncore.py", line 329, in bind
return self.socket.bind(addr)
OSError: [Errno 99] Cannot assign requested address
次のエラーを与えます。 os.environ
キーは['KUBERNETES_PORT_53_UDP_PORT', 'PIP_NO_CACHE_DIR', 'KUBERNETES_PORT_53_TCP_PORT', 'STI_SCRIPTS_PATH', 'PYTHONIOENCODING', 'X_SCLS', 'KUBERNETES_PORT_443_TCP_PROTO', 'HOME_SERVICE_PORT', 'HOME_SERVICE_HOST', 'KUBERNETES_PORT_53_TCP_ADDR', 'LANG', 'MANPATH', 'KUBERNETES_PORT_53_UDP', 'KUBERNETES_PORT_443_TCP', 'HOME_SERVICE_PORT_8080_TCP', 'PWD', 'KUBERNETES_PORT', 'KUBERNETES_SERVICE_PORT_HTTPS', 'VIRTUAL_ENV', 'PYTHON_VERSION', 'KUBERNETES_PORT_443_TCP_ADDR', 'HOME_PORT_8080_TCP_PORT', 'HOME_PORT', 'HOME_PORT_8080_TCP_ADDR', 'HOME_PORT_8080_TCP_PROTO', 'OPENSHIFT_BUILD_SOURCE', 'KUBERNETES_PORT_53_TCP_PROTO', 'KUBERNETES_PORT_53_UDP_PROTO', 'LD_PRELOAD', 'DESCRIPTION', 'LIBRARY_PATH', 'OPENSHIFT_BUILD_NAMESPACE', 'KUBERNETES_PORT_53_TCP', 'container', 'PATH', 'KUBERNETES_SERVICE_HOST', 'KUBERNETES_SERVICE_PORT_DNS_TCP', 'KUBERNETES_PORT_53_UDP_ADDR', 'KUBERNETES_SERVICE_PORT', 'PYTHONUNBUFFERED', 'KUBERNETES_PORT_443_TCP_PORT', 'OPENSHIFT_BUILD_COMMIT', 'NSS_WRAPPER_PASSWD', 'HOME_PORT_8080_TCP', 'KUBERNETES_SERVICE_PORT_DNS', 'SUMMARY', 'STI_SCRIPTS_URL', 'NSS_WRAPPER_GROUP', 'PKG_CONFIG_PATH', 'SHLVL', 'OPENSHIFT_BUILD_REFERENCE', 'HOME', 'HOSTNAME', 'LD_LIBRARY_PATH', 'LC_ALL', 'XDG_DATA_DIRS', 'OPENSHIFT_BUILD_NAME']
です。
例外:私は必死にlocalhost(127.0.0.1)にバインドしようとしましたが、許可が拒否されました。
これは、質問への答えを提供していません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 - [レビューの投稿](レビュー/低品質の投稿/ 17218916) –
はい、質問に対する回答です。実行時のWSGIサーバーがホスト値 "0.0.0.0"にバインドする必要があるという点でWillは正しいです。これは、すべてのネットワークインターフェイスでリッスンするため、ホストの外部からの要求に影響を与える可能性があります。したがって、 '' serve(app、host = '0.0.0.0'、port = 8080、threads = 50) ''を使うべきです。 –
昨日、0.0.0.0で初期化できましたが、インターネット経由では提供されませんでした(正しく構築され展開されました)。しかし、今日は絶対に何もしなかったとしてもうまくいきます。だから私はこれが解決したのか何かが舞台裏で起こったのかどうかはわかりません。 私はOpenshift 2> 3への不適切な注釈付けにむしろ不満があるので、私はAWSへの最良の移行と推測します。 –