自己紹介
はじめまして。「走るプログラマー@BBQ」と申します。
Twitterでは @RunProgramerBBQ として、日々の学びや働き方について発信しています。
ある日 Twitter で「Docker使えないのやばい」みたいな投稿を見かけて、
「レガシーな環境で開発している自分にとってはこれはマズい…!」と思い、Dockerの勉強を始めました 🐳
Expressも普段使わないのでこれを機に学ぼうと思います。
学んだ内容や、つまずいたポイントを
備忘録 & 誰かの役に立てば という気持ちで Qiita にまとめています。
投稿のスタンス
- 自分がハマったエラーや解決法を正直に書く
- コピペで動く再現性を大事にする
- 初学者目線での学習メモを残す
✅ Express 5.x を使用するための前提条件
-
Node.js バージョン 18 以上 が必要です
Express 5 は Node.js v18 より前のバージョンをサポートしていません。 -
npm 9.0 以上 を使用してください
npm 9.0 以降では、Express 5.x がデフォルトでインストールされます。
🛠️ プロジェクト構成
docker-express/
├── Dockerfile
├── package.json
└── app.js
1. package.json(Express 5.x を使用)
{
"name": "docker-express",
"version": "1.0.0",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "^5.1.0"
}
}
2. app.js(最小構成の Express サーバー)
const express = require('express');
const app = express();
const PORT = 3000;
app.get('/', (req, res) => {
res.send('Hello from Docker + Node 22 + Express 5!');
});
app.listen(PORT, () => {
console.log(`Server running on http://localhost:${PORT}`);
});
3. Dockerfile(Node 22 ベース)
FROM node:22
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "app.js"]
4. npm install(ローカルで確認)
npm install
5. Docker イメージをビルド
docker build --no-cache -t my-node-app .
6. 既存コンテナを整理(必要な場合)
docker ps -a
docker rm -f my-node-app
7. コンテナを起動
docker run -p 3000:3000 --name my-node-app my-node-app
ログに以下が出れば成功:
Server running on http://localhost:3000
8. 動作確認
ブラウザでアクセス:
http://localhost:3000
または PowerShell / CMD で:
curl http://localhost:3000
出力結果:
Hello from Docker + Node 22 + Express 5!
🎉 まとめ
- Node.js 22 + Express 5.x を Docker で動かす方法を紹介しました
- Express 5.x はまだ新しいので、今後のアップデートにも対応できるようにしておきたい!
- 本記事は 自分の備忘録 でもあり、同じようにつまずく人の助けになれば嬉しいです!