📌
FlaskアプリケーションをDockerとWSL2で起動する方法
この記事では、FlaskアプリケーションをDockerとWSL2を使って起動するための手順を解説します。指定されたroot pathにフォルダを作成し、repository名とport番号を指定して環境を作成するbash関数も紹介します。
前提条件
- Dockerがインストールされていること
- WSL2がインストールされていること
- Windows環境であること
手順
1. プロジェクトディレクトリの作成
まず、プロジェクトディレクトリを作成します。以下のbash関数を使用して、指定されたroot pathにフォルダを作成し、Flask環境を構築します。
#!/bin/bash
create_flask_env() {
local root_path=$1
local repo_name=$2
local port=$3
local container_name=${4:-flask_app}
# root pathが指定されている場合、フォルダを作成
if [ -n "$root_path" ]; then
mkdir -p "$root_path/$repo_name"
cd "$root_path/$repo_name" || exit
else
mkdir -p "$repo_name"
cd "$repo_name" || exit
fi
# Dockerfileの作成
cat <<EOF > Dockerfile
# ベースイメージとしてPython 3.8を使用
FROM python:3.8-slim
# 作業ディレクトリを設定
WORKDIR /app
# 必要なパッケージをインストール
COPY requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# アプリケーションのソースコードをコピー
COPY . .
# コンテナが起動する際に実行されるコマンド
CMD ["python", "app.py"]
EOF
# requirements.txtの作成
echo "Flask" > requirements.txt
# app.pyの作成
cat <<EOF > app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello, World!"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=$port)
EOF
# docker-compose.ymlの作成
cat <<EOF > docker-compose.yml
version: '3'
services:
web:
build: .
container_name: $container_name
working_dir: /app
volumes:
- .:/app
ports:
- "$port:$port"
EOF
echo "Flask環境が作成されました。以下のコマンドを実行して起動してください:"
echo "docker-compose up"
}
2. 関数の実行
上記の関数を実行して、Flask環境を作成します。例えば、以下のように実行します。
create_flask_env "/path/to/root" "my_flask_repo" 8081 "my_flask_app"
3. Dockerコンテナの起動
プロジェクトディレクトリに移動し、以下のコマンドを実行してDockerコンテナを起動します。
source /path/to/bash/create_flask_env.sh
base_dir=/path/to/root
app_name="my_flask_repo"
create_flask_env "$base_dir" "$app_name" 8080 "my_flask_repo"
cd "$base_dir/$app_name"
docker-compose build && docker-compose down && docker-compose up
4. ブラウザでアクセス
WindowsのChromeブラウザで http://localhost:8081
にアクセスします。これでFlaskアプリケーションのウェブページが表示されるはずです。
まとめ
この記事では、FlaskアプリケーションをDockerとWSL2を使って起動するための手順を解説しました。指定されたroot pathにフォルダを作成し、repository名とport番号を指定して環境を作成するbash関数を使用することで、簡単にFlask環境を構築することができます。
Discussion