デジタル海のアプリプラットホームにフラスコアプリを配備する方法


私は、最近、私の側プロジェクトを置くプロセスを経験しましたhowbigisthebaby.io デジタルオーシャンの新しいアプリケーションプラットフォームでは、誰か他の誰かがそれが役に立つ(または少なくとも私は後で再訪)が見つかりましたそれを文書化したい.

第1部:フラスコアプリの環境設定


ステップ1 :マシン上の仮想環境を作成する
$ virtualenv venv -p Python3
ステップ2 :仮想環境の活性化
$ source venv/bin/activate
ステップ3:インストールフラスコとgunicorn
$ pip install Flask gunicorn
ステップ4:要件の要件を凍結します.txtファイル
フラスコパッケージがインストールされているので、この要件とその依存関係を保存する必要があります.PIPを使用してこれを行うし、要件に情報を保存します.txtファイル
$ pip freeze > requirements.txt
ステップ5:アプリのフラスコアプリのコードを書く.Pyここではシンプルな“こんにちは世界”アプリ
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

パート2 : gunicornの設定を設定する


私たちは生産環境でフラスコの内蔵サーバーを使用できないので、我々はgunicronウェブサーバーを使用するWhy Nginx/Gunicorn/Flask?

While lightweight and easy to use, Flask’s built-in server is not suitable for production as it doesn’t scale well and by default serves only one request at a time.
Source: Flask's docs


ステップ1 : gunicorn設定ファイルを作成します
$ touch gunicorn_config.py
ステップ2 :この設定をgunicornchen設定に追加します.Pyファイル
# inside gunicorn_config.py
bind = "0.0.0.0:8080"
workers = 2

Part 3 :サイトをGithubに押す


デジタル海洋アプリプラットフォームが動作する方法は、それがgithubレポと同期することです.このGithubレポへの変更は自動的にデジタルオーシャンのアプリプラットフォーム上であなたのアプリの生活にプッシュされます.
ステップ1:Githubの新しいレポを作成します.コム
ブラウザを開いてGithubに移動し、プロファイルでログインして、フラスコアプリケーションと呼ばれる新しいリポジトリを作成します.
ステップ2 :次に、作成します.gitignoreファイルを追加します.これらのファイルはgithubにプッシュされません.
$ git init
$ nano .gitignore
# inside .gitignore
.pyc
ステップ3:リポジトリにファイルを追加し、変更をコミット
$ git add app.py gunicorn_config.py requirements.txt .gitignore
$ git commit -m "Initial Flask App"
ステップ4 :リモートリポジトリとして作成したGithubレポを追加する
$ git remote add origin https://github.com/your_username/flask-app
例: git remote add originhttps://github.com/ajot/hbb-flask-webhook
ステップ5:Gitthubにプッシュ
$ git branch -M main
$ git push -u origin main

第4部:デジタルオーシャンのアプリプラットフォームへの展開

  • デジタルオーシャンで新しい“アプリ”を作成します.
  • ソースとしてgithubを選択
  • あなたが作成したGithubレポを選択
  • アプリを作成するプロモーションに従ってください
  • このコマンドを実行するコマンドを編集します
  • ボーナスチップ:また、デジタル海で環境変数を設定することができますし、このようなコードでそれらにアクセスする-
    airtable_api_key = os.environ.get('airtable_api_key')
    airtable_base = os.environ.get('airtable_base')
    
    リソース
    How To Deploy a Flask App Using Gunicorn to App Platform | DigitalOcean