Node.js で作成した REST API を Docker化
2021-08-084 min read
目次
概要
Node.js で作成した REST API を Docker化した際のメモです。
Node.jsでREST APIを作成
まずはNode.jsでアプリケーションを作成します。
次のようにディレクトリ/ファイルを作成します。
app
├── Dockerfile # コンテナ
├── index.js # APIのソース
└── package.json
package.json
に次のように記載します。
{
"name": "docker-nodejs-api",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"author": "hoge",
"license": "MIT",
"dependencies": {
"express": "^4.17.1"
}
}
index.js
にREST APIを実装します。
'use strict';
const express = require('express');
const app = express();
app.get('/', (req, res) => {
const param = {
'msg': 'Hello World!',
};
res.header('Content-Type', 'application/json; charset=utf-8');
res.send(param);
});
app.listen(8080, '0.0.0.0');
これは単純に {"msg": "Hello World!"}
を返すAPIです。
これでAPIの作成部分は完了です。
コンテナ化
コンテナ化定義
Dockerfile
に次の内容を記載します。
FROM node:12
WORKDIR /usr/src/app
# アプリケーションの依存関係をインストールする
COPY package*.json ./
RUN npm install
# アプリケーションのソースをバンドル
COPY . .
EXPOSE 8080
CMD [ "node", "index.js" ]
.dockerignore
にコンテナに含まないファイル/ディレクトリを定義します。
node_modules
コンテナ化作業
次のコマンドでコンテナイメージをビルドします。
docker build . -t test/node-rest-api
ビルドが完了すると、docker images
からイメージを確認することができます。
$ docker images
test/node-rest-api
次のコマンドでコンテナを開始します。8080ポートを8081ポートにバインドしたので、ブラウザから8081ポートで叩くとアクセスすることができます。
docker run -p 8081:8080 -d test/node-rest-api
参考
Recommends
New Posts
Hot posts!
Date
Tags
(110)
(54)
(54)
(47)
(45)
(36)
(30)
(29)
(24)
(24)
(22)
(21)
(21)
(20)
(19)
(17)
(16)
(16)
(15)
(14)
(12)
(12)
(12)
(12)
(12)
(12)
(11)
(10)
(10)
(10)
(10)
(10)
(9)
(9)
(8)
(8)
(8)
(8)
(7)
(7)
(6)
(6)
(6)
(6)
(6)
(5)
(5)
(5)
(5)
(4)
Author