近年、Node.jsを使ったアプリケーションの開発が盛んになっています。一方で、Dockerはアプリケーションを簡単にコンテナ化して、どこでも動かせるようにする素晴らしいツールです。今回は、Node.jsとDockerを一緒に使う方法を説明します。
Node.jsは、JavaScriptをサーバーサイドで動かすための環境です。これにより、フロントエンドとバックエンドの両方でJavaScriptを使うことができ、開発がスムーズになります。
Dockerは、アプリケーションをコンテナと呼ばれる環境にパッケージ化する技術です。コンテナは、必要なすべてのソフトウェアと設定を持っているため、異なる環境でも同じように動作します。
Dockerを使うことで、Node.jsアプリケーションをどんな環境でも簡単に動かすことができます。これにより、開発したアプリを友達やチームメンバーと共有するのがとても楽になります。
Dockerを使うと、誰もが同じ開発環境を持つことができるため、環境の違いによるトラブルが減ります。これにより、開発がスムーズに進みます。
まずは、Node.jsアプリケーションを簡単に作成してみましょう。
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
次に、このNode.jsアプリケーションをDockerで動かすための設定ファイル「Dockerfile」を作成します。
# 使用するイメージを指定
FROM node:14
# 作業ディレクトリを指定
WORKDIR /usr/src/app
# package.jsonをコピー
COPY package*.json ./
# 依存関係をインストール
RUN npm install
# アプリケーションのソースコードをコピー
COPY . .
# アプリケーションを起動
CMD ["node", "app.js"]
# 3000番ポートを開放
EXPOSE 3000
それでは、Dockerイメージをビルドして実行してみましょう。以下のコマンドを実行します。
# イメージのビルド
docker build -t my-node-app .
# コンテナの実行
docker run -p 3000:3000 my-node-app
これで、http://localhost:3000 にアクセスすると、「Hello World」と表示されるはずです。
Node.jsとDockerを組み合わせることで、開発環境を統一し、簡単にアプリケーションを配布できるようになります。今回の内容を参考にして、自分だけのNode.jsアプリをDockerで試してみてください!