はじめに
Docker Composeを学んだ次のステップとして多くの人が知りたいのが、
「実際のアプリケーションをどうやって動かすのか?」 という点です。
本記事では、Docker Composeを使って Node.js / Python アプリを起動する方法を、
初心者でも再現できる ハンズオン形式 で解説します。
本記事で学べること
- Docker Composeでアプリを起動する基本構成
- Node.js / Pythonアプリのコンテナ化
- ソースコードをリアルタイム反映する開発環境構築
Docker Compose × アプリ構成とは?
一般的なWebアプリ構成は以下のようになります。
- アプリ(Node.js / Python)
- Webサーバー(Nginx)
- データベース(MySQLなど)
Docker Composeを使うことで、これらを 1つの設定ファイルでまとめて管理できます。
Docker Composeでアプリを動かすメリット
Docker Composeでアプリを動かす主なメリットは以下です。
- 開発環境を即座に再現できる
- チームで同一環境を共有できる
- ホスト環境に依存しない
- 本番環境への移行がしやすい
特に Node.js / Python初心者 にとって、「環境構築で詰まらない」点は大きな利点です。
【ハンズオン①】Docker Compose × Node.js アプリ
構成イメージ
- Node.js(Express)
- Docker Compose
① プロジェクト構成
node-compose-sample/
├─ docker-compose.yml
└─ app/
├─ Dockerfile
├─ package.json
└─ index.js
② Node.jsアプリを作成
app/index.js
const express = require("express");
const app = express();
app.get("/", (req, res) => {
res.send("Hello Docker Compose with Node.js!");
});
app.listen(3000, () => {
console.log("Server running on port 3000");
});
③ package.json
{
"name": "node-compose-sample",
"version": "1.0.0",
"main": "index.js",
"dependencies": {
"express": "^4.19.2"
}
}
④ Dockerfile(Node.js)
FROM node:20-alpine
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["node", "index.js"]
⑤ docker-compose.yml
version: "3.9"
services:
app:
build: ./app
ports:
- "3000:3000"
volumes:
- ./app:/app
- /app/node_modules
⑥ 起動
docker compose up --build
⑦ 動作確認
ブラウザで以下にアクセスします。
http://localhost:3000
表示されれば成功です 🎉
【ハンズオン②】Docker Compose × Python アプリ
構成イメージ
- Python(Flask)
- Docker Compose
① プロジェクト構成
python-compose-sample/
├─ docker-compose.yml
└─ app/
├─ Dockerfile
├─ requirements.txt
└─ app.py
② Pythonアプリを作成
app/app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello Docker Compose with Python!"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000)
③ requirements.txt
flask==3.0.2
④ Dockerfile(Python)
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]
⑤ docker-compose.yml
version: "3.9"
services:
app:
build: ./app
ports:
- "5000:5000"
volumes:
- ./app:/app
⑥ 起動
docker compose up --build
⑦ 動作確認
http://localhost:5000
Node.js / Python 共通でよく使う設定
volumes(開発効率UP)
volumes:
- ./app:/app
コード変更が即反映されます。
よくあるエラーと対処法
ポート競合
docker compose ps
使用ポートを変更することで解決します。
Docker Compose × アプリが活躍する場面
- ローカル開発環境
- 技術ブログの検証環境
- チーム開発
- 本番環境構築の前段階
まとめ
Docker Composeを使えば、
- Node.js / Pythonアプリを簡単にコンテナ化できる
- 環境構築に悩まなくなる
- 開発スピードが大幅に向上する
Docker Compose × アプリ開発は、モダンな開発環境の基本です。
コメントを残す