🏃‍♂️

『Docker使えないのやばい?』と思って始めた Node.js 22 + Express 5.x🐳

に公開

自己紹介

はじめまして。「走るプログラマー@BBQ」と申します。
Twitterでは @RunProgramerBBQ として、日々の学びや働き方について発信しています。

ある日 Twitter で「Docker使えないのやばい」みたいな投稿を見かけて、
「レガシーな環境で開発している自分にとってはこれはマズい…!」と思い、Dockerの勉強を始めました 🐳
Expressも普段使わないのでこれを機に学ぼうと思います。

学んだ内容や、つまずいたポイントを
備忘録 & 誰かの役に立てば という気持ちで Zenn にまとめています。

投稿のスタンス

  • 自分がハマったエラーや解決法を正直に書く
  • コピペで動く再現性を大事にする
  • 初学者目線での学習メモを残す

✅ 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 はまだ新しいので、今後のアップデートにも対応できるようにしておきたい!
  • 本記事は 自分の備忘録 でもあり、同じようにつまずく人の助けになれば嬉しいです!

Discussion