Dockerfile の基本から、Fargateで動かすための実用的な例
🧱 Dockerfileとは?
Dockerfile
は、Dockerイメージを作るための設計図。
中に「どんな環境で」「何を実行するか」を記述します。
✅ 最小構成の例(Pythonアプリ)
例えば、Pythonアプリケーションを動かしたい場合の Dockerfile
はこんな感じです:
# ベースイメージを指定(公式Pythonの軽量バージョン)
FROM python:3.11-slim
# 作業ディレクトリを設定
WORKDIR /app
# 依存ファイルをコピー&インストール
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# アプリのソースコードをコピー
COPY . .
# コンテナ起動時に実行するコマンド
CMD ["python", "app.py"]
🧪 例: Flaskアプリ(Web API)
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
CMD ["flask", "run"]
requirements.txt(例)
flask
🚀 ビルドとテスト
EC2 またはローカルで以下のコマンドを実行:
# Dockerイメージをビルド
docker build -t myapp .
# 動作確認(ポート指定が必要な場合)
docker run -p 5000:5000 myapp
☁️ Fargate用に注意する点
- ポート番号はタスク定義と一致させる(例: 80や5000)
- 環境変数などがあればCMDやENTRYPOINT、またはECS側で設定
- ECRにpushしてECSで指定するだけでOK(EC2など不要)