今回は「DockerでFlaskの実行環境を作成する方法」を紹介します。Flask”で検索してるあなたは「とりあえず一番カンタンな方法を教えて欲しいな...」と考えているはずです。いうのも、記事によって紹介されているDockerコンテナの作成方法が違うんですよね。Dockerに慣れていないと、どの方法を採用したら良いのか迷ってきます。この記事は、Dockerの扱いに慣れていないあなたを手助けします。具体的には、Dockerfileだけで「とりあえずFlaskの環境を作る方法」を紹介していきます。必要なのは、たったの3ステップ。順を追うだけで...、というかコピペするだけで完了します。実装を体験してみて、後から理解を深めていきましょう。結論、DockerでFlaskの実行環境を作成するには、以下の3ステップが必要です。イメージからコンテナをビルドするそれでは順番に見ていきましょう。Pythonファイルを作成するPythonファイルを作成するにあたって、まずは今回のプロジェクトフォルダを作成しましょう。この記事では/Users/<ユーザー名>/Dev/docker-flaskというフォルダを作成しています。記事の内容を試したいということなら、デスクトップ配下で良いと思います。最終的なフォルダ構成は以下のようになります。filesDockerfileはあとで書くので、今はapp配下にFlask用のPythonファイルを作成しましょう。World”を出力するプログラムをapp.pyに書いておきます。port=port)これでSTEP1は完了です。Dockerfileでイメージを作成するPythonファイルを作成したら、次にDockerfileを準備しましょう。これを元にDockerイメージを作成します。結論、今回Dockerfileに書く内容は以下のとおりです。"app.py"]1行目ではベースになるコンテナイメージを指定しています。なんとなく分かるかもしれませんが、今回指定しているのはバージョン3.8.11のPythonを使うためのコンテナイメージです。その後に付いてるslim-busterはOSの選択部分です。他にも以下のようなOSを選べます。slim-streach今回使っているBusterとかStreachというのは、Debianのコードネームです。コードネームはDebianのバージョンを表しています。10つまり今回使っているslim-busterは、OSにDebian10が使われているということです。それにslimが付いているので、色々なインストール済みパッケージを含まないBusterの軽量版になります。Hubを見てみてください。Linuxを選ぶべきではありません。詳細は以下の記事に譲りますが、ビルド時間が長くなるなどパフォーマンス上の問題があるからです。2021))さて、話を戻して。Dockerfileを作成できたら、それを元にDockerイメージを作成します。そのためには、以下のコマンドをターミナルで入力します。.このコマンドを使えばpython-flaskという名前で、Dockerfileを元にDockerイメージを作成します。最初はイメージの作成に時間がかかります。イメージの作成が完了したら、以下のコマンドを入力してみてください。118MBこれで作成したイメージを確認できるはずです。イメージからコンテナをビルドする最後にイメージを元にコンテナをビルドしましょう。結論、ここで入力するコマンドは以下です。python-flaskコマンドを実行するとランダムな英数字が出力されます。これはDockerコンテナの作成が完了した合図です。あとは自分のPCでFlaskを動かすときと同じようにlocalhost:5000にアクセスしてみてください。Worldと表示されたページを開けるはずです。コードを変更したいときはapp/app.pyをそのまま編集します。Worldに対してh1タグを付けてみましょう。port=port)コードを保存したら、ページを更新してみてください。h1タグが付いているはずです。これでDockerを使ったFlaskの実行環境を作成できるようになりました。コンテナの動作を止めたいということであれば、以下のコマンドを実行してください。myflaskコンテナ作成時に--rmを付けているので、コンテナ動作の停止後に削除されるようになっています。以下のコマンドを入力すればmyflaskコンテナが削除されていることが分かるはずです。-aもしイメージも不要なら、以下のコマンドで削除しましょう。python-flaskこれで後片付けも完了です。寄稿、記事の掲載依頼はお問い合わせページからお願い致します。当サイトで使用する「仮想通貨」とは、「暗号資産」のことを指します。当サイトで使用する「仮想通貨」とは「暗号資産」のことを指します。当サイトで掲載している情報に基づいて被ったいかなる損害についても、運営者及び情報提供者は一切の責任を負いません。保証されたものではありません。