IBM Cloud FoundryにPython flaskのアプリをデプロイする

Pocket

IBM Cloud環境にPython flaskのアプリをデプロイする手順です。

まずはPython flaskの公式ページからサンプルプログラムを作成して、IBM Cloud Foundryにアップロードしましたがうまくいかず。

日本語のサイト等を見ると、manifest.ymlやらrequirements.txt、setup.pyなどとよく分からないファイルが必要な様子。一日ぐらい試行錯誤しましたがよくわかりません。

知識のないまま真似をして進めるのもどうかと色々情報をあさっていたところ、以下のページに簡単な手順がありました。
参考ページ:Simple hello world python flask app

IBM Cloud Blogと公式ページのようで、ほぼこのままの手順でうまくいきました。

【前提条件】
・IBM Cloudアカウントを取得済みであること
・gitコマンドが利用できるCUI環境があること
・Bluemix CLIがインストール済みであること

【開発環境について】
PC(OS):Windows 10
ソフト:Docker for Windows
コンテナ:Ubuntu:latestベース

私はgitやpython等の環境をWindowsで構築するのが面倒だったため、Docker内にLinux環境を作って作業しています。

IBM・ライトアカウント取得時に組織名などを日本語にしてしまったため、日本語環境を用意してSSH接続(TeraTerm)で作業しました。
(Docker for Windowsはコマンドプロンプトベースのため日本語入力を正しく受け付けてくれないため)
参考記事:DockerToolBoxでPython日本語表示(やや強引)

【Python flaskデプロイ手順】
参考ページにあるとおり、Github上のサンプルコードをデプロイしてみます。
①GitHubからソースコードを取得する

git clone https://github.com/IBM-Bluemix/python-hello-world-flask.git

②フォルダ内に入る

cd python-hello-world-flask

③Bluemixにログインする

bx login -u ユーザ名 -o 組織名 -s スペース名

※ユーザ名、組織名、スペース名はIBM Cloudアカウント作成時のものを使用
※パスワードの入力が必要
※APIエンドポイントの選択が求められた場合、https://api.ng.bluemix.netを選択(一覧になければその他から入力)する
④サンプルコードをIBM Cloud Foundry上にデプロイする

bx app push サービス名 -b python_buildpack -m メモリサイズ

※サービス名は一意(誰かと被っていたらNG)
※メモリサイズは〇〇MB等と設定
⑤ブラウザからデプロイしたコードを確認する
URL:https://サービス名.mybluemix.net/

テキストボックスに入力し、ボタンを押すと次の画面で入力テキストを表示するだけのWEBアプリケーションが動作します。

とりあえずこのサンプルコードをベースにして開発を進めようと思います。

【注意点】
サンプルコードに含まれるファイルについての注意点
(1)requirements.txt
 開発で使用したpythonライブラリを記述するため、以下のようにpipからライブラリ一覧をリダイレクトすると楽です。

pip3 freeze -l > requirements.txt

 ただし提供されていないライブラリ?なのか一部エラーが発生します。エラーが出るライブラリは不要ならコメントアウトしましょう。必要なものだけ書く方が楽かも知れません。
(2)Procfile
 実行するコマンドをここに記述する。
(3)manifest.yml
 アプリの情報(使用メモリなど?)を記述する。
(4)setup.py
 アプリの情報を記述する。

広告

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です