昨年(2018年)の夏頃にPythonFlaskのアプリをIBMCloudのCloudFoundry上で動かしていたのですが、現在(2019年3月)時点で同じプログラムが起動できなくなっていました。
ログを見る限り、エラーは以下の箇所で起きているようです。
app.run(host='0.0.0.0', port=port, debug=True)
buildpackやらstackやらと色々調べ回りましたが、どうやら古い起動方法では起動しなくなってしまったと推測されます。(公式情報を見付けていないので確かではないのですが。。。)
python flask runコマンドを使って起動することで、無事動かすことができました。
(1)以前の起動方法(現在は起動エラーになる)
・Procfile(起動コマンド記述ファイル)
web: python 〇〇.py
・〇〇.py(起動用のプログラム)
(略) def app作成メソッド(): 処理A 処理B port = int(os.getenv('PORT', 5000)) if __name__ == '__main__': app = app作成メソッド() app.run(host='0.0.0.0', port=port, debug=True)
(2)今回の起動方法(動作しました)
・Procfile(起動コマンド記述ファイル)
web: python -m flask run --host=0.0.0.0 --port=$PORT
・〇〇.py(起動用のプログラム)
(略) 処理A 処理B
app.runやif __name__ == ‘__main__’は不要なので削除して、app作成メソッドの中身を直接実行する形。
熟知しないまま使っているので自業自得感もありますが、いやはや酷い目に遭った。。。