ノードJSアプリケーションを実行するにはDockerを使用する方法


このブログでは、ノードJSアプリケーションのビルド方法、イメージを生成し、Dockerを使用して実行する方法を示します.
ノードJSアプリケーションを作成しましょう.
mdkir nodejsapp
cd nodejsapp
パッケージを初期化します.JSONファイルは以下のコマンドを使用します.
npm init
パッケージに1回.JSONファイルが作成されます今すぐエクスプレスをインストールします.
npm install express
したがって、あなたのパッケージ.JSONファイルはこのように見えます.
{
  "name": "nodejsapp",
  "version": "1.0.0",
  "description": "nodejsapp description",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node index.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.3"
  }
}
始めましょうindex.js 当社のウェブサイトを構築する.
const express = require("express");
const app = express();
const port=3000;

app.get("/", (req, res) => {

res.sendFile(__dirname + "/index.html");

})

app.get("/page", (req, res) => {

res.sendFile(__dirname + "/page.html");

})

app.listen(port, () => {
  console.log(`running at port ${port}`);
});
つのファイルを作りましょうindex.html and page.html
<!-- index.html -->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Node JS</title>
</head>
<body>
    <h1>Node JS</h1>
    <p> Hello from Home   </p>
    <br />
    <a href="/page">next page</a>
</body>
</html>
<!-- page.html  -->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Node JS Page</title>
</head>
<body>
    <h1>Second Page</h1>
    <p> Hello from page 2</p>
    <br />
    <a href="/">Home page</a>
</body>
</html>
ルートディレクトリでDockerfile and .dockerignore .
FROM node:14-alpine

RUN mkdir -p /home/app

COPY ./* /home/app/

EXPOSE 3000

WORKDIR /home/app

RUN npm install

CMD ["npm", "start"]
node_modules/
package-lock.json
Dockerイメージをビルドするには、次のコマンドを実行します
docker build -t nodeapp:latest .

or

docker build -t <dockerhub_name>/<app_name>:<tag> . 
Dockerイメージが構築されていることを確認するには、端末とタイプを開きますdocker images .出力は次のように表示されます.
REPOSITORY            TAG             IMAGE ID       CREATED             SIZE
nodeapp               latest          e0a978b53566   8 seconds ago       123MB

NODEAPPという名前のDockerイメージを実行しましょう.
docker run -p 3001:3000 e0a978b53566
私はポート3001に私のアプリケーションをバインドしているので、それはそのポートで動作します.あなたが合うようにそれを変更するには無料です.
docker run -p <PORT>:3000 <IMAGE ID>
その結果、実行中のアプリケーションを見ることができますhttp://localhost:3001/ .

このブログがあなたに役立つことを願っています.