
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
Node.js で作成した REST API を Docker化
2021-08-08
[AmazonSES] node.js と ejs を利用してEメールを送信する
2022-04-09
javascriptで累積和を解く
2022-02-27
NestJSアプリケーションをwebpackでBundle
2022-02-20
homebrewでnodejsインストール&任意のバージョン利用
2021-11-30
JSで32ビット符号付き整数に対してのビット演算でハマった
2021-02-17
JSでIPアドレスがサブネットマスクで指定した範囲内にあるか判定する
2021-02-16
プログラムの数値計算で発生する誤差の種類 丸め誤差・打ち切り誤差・桁落ち
2021-02-09
JSでサブネットマスクの計算
2021-02-04
AWS Amplify に Next.js (SSG) で作ったアプリをデプロイする
2021-01-07
Typescriptに入門した
2021-01-04
Vue/Nuxt.js 触ってた人が Next.js に入門する
2021-01-03
JavaScriptでbig-integerでできること
2019-12-30
vue-cli3のセットアップと開発サーバ起動からバンドルファイル生成まで
2019-02-24
複数キーでソートするサンプルコード JavaScript
2018-11-05
New Posts
[AWS CDK]ECS FargateでNestJSで作成したRESTfull APIデ...
2022-05-24
[AWS CDK]S3 CloudFront OAI Route53 構成 で NextJ...
2022-05-23
[CDK]SNS+SQS+DynamoDBでBounceとComplaint情報を収集する...
2022-04-11
[AmazonSES] node.js と ejs を利用してEメールを送信する
2022-04-09
GatsbyからNext.jsへのサイト移行
2022-04-04
[AWS CDK] Lambda で S3 オブジェクトを読み書きするStackの構築
2022-03-18
[AWS CDK] S3 + CloudFrontの構築とOriginAccessIden...
2022-03-09
[AWS CDK] Bastion(踏み台)構築。SSMとEC2InstanceConne...
2022-03-06
[AWS CDK] Cognito を構築
2022-03-04
AWS CDK v2 でVPC上にAPI Gateway + Lambda + RDS +...
2022-02-28
javascriptで累積和を解く
2022-02-27
AWS Amplify で monorepo を導入し 単一リポジトリで複数プロジェクトを...
2022-02-25
AWS CDK v2 で Lambda関数のデプロイ
2022-02-23
NextJSでDevToysのようなものを作成した
2022-02-22
JSで動的計画法を利用して部分和問題を解く
2022-02-20
Hot posts!
Proxy環境下でcurlを実行する
2019-12-07
OpenCVのMatのタイプ一覧表
2018-11-25
Macでも利用できるDBクライアント MySQL PostgreSQL Oracle など
2019-12-21
TablePlusを使ってみる。シンプルでモダンなSQLクライアントツール
2018-09-30
DBクライアントツールはDBeaverをおすすめしたい
2021-03-08
AWS S3のアクセスキーIDとシークレットアクセスキーの取得 作業用ユーザを作成
2019-06-12
AtCoderで初めて色がつくまでの話(茶色) レートが中々上がらなかった原因
2018-11-25
CentOS8でEPELとPowerToolsリポジトリの有効化
2020-11-30
Macでターミナルからポートスキャンを行う方法。
2018-12-09
Python + OpenCVのfillConvexPolyで複雑なポリゴンを描画する
2018-11-27
Date
▶︎
2022 年 (23)
▶︎
2021 年 (40)
▶︎
2020 年 (30)
▶︎
2019 年 (90)
▶︎
2018 年 (89)
▶︎
2017 年 (1)
Tags
Author