Docker コンテナで Node.js の Hello, world を試してみた

Docker コンテナ内で Node.js を動かし Hello, world してみた。

目的

docker-compose で Node.js のコンテナを起動し、Web サーバーにアクセスしたら Hello, world! を返す。

設定

ディレクトリ構成

1
2
3
4
5
6
+ /
+- docker-compose.yml
+- node
+- app
| +- server.js
+- Dockerfile

docker-compose.yml

1
2
3
4
5
6
7
version: "3.0"
services:
node:
build:
context: "node"
ports:
- "1337:1337/tcp"

node/Dockerfile

2020/07/28 時点では、node:14.5.0-alpine3.12 が最新っぽいので、このイメージを使用する。

1
2
3
4
5
FROM node:14.5.0-alpine3.12
EXPOSE 1337
WORKDIR /root
COPY ./app/server.js /root
CMD ["node", "server.js"]

node/app/server.js

本当に、Hello, World! を表示するだけのWebアプリ。

1
2
3
4
5
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello, world!\n');
}).listen(1337);

起動と動作確認

1
2
3
4
$ sudo docker-compose build
$ sudo docker-compose up -d
$ curl http://localhost:1337
Hello, world!

表示された。