NodeJS、エクスプレスとDocker



この記事では、NODEJS、ExpressとDockerから始める方法を学びます.
Dockerを使う方法についていくつかの基礎が欲しいなら、Dockerの基礎を理解する上で私の記事を読んでください.
もはや利用できない記事
これはDockerとの作業を開始するために必要なすべての知識を必要とします.

必要条件
  • Javascript
  • Docker基本的な

  • Dockerの理解
    Dockerは、オープンソースプラットフォームを提供するオープンソースプラットフォームを提供し、配布、および配布アプリケーションを実行します.これは、ルーチンの設定手順を自動化し、高速、シンプルで、ポータブルアプリケーションを作成するために開発ライフサイクル全体で使用されます.

    NodeJSとExpressを理解する
    ノード.JSは、JavaScriptのランタイムフレームワークで、ネットワークとサーバー側のアプリケーションを作成するために使用されます.
    Expressは、ノードの上に座っている小さなフレームワークです.Webとモバイルアプリケーションを開発する機能の堅牢なセットを提供するJSのWebサーバー機能.

    なぜあなたのアプリケーションを
  • 高速アプリケーション展開
  • のマシン間の可搬性
  • バージョン管理とコンポーネント再利用
  • イメージ/Dockerfile の共有
  • 軽量フットプリントと最小のオーバーヘッド
  • 単純なメンテナンス

  • NODEJSアプリ
  • すべてのファイルが
  • に住む新しいディレクトリを作成します
  • パッケージを作成します.JSONファイルを使用してプロジェクトを定義します.
  • {
      "name": "express_app",
      "version": "1.0.0",
      "license": "MIT",
      "description": "Node.js and express on Docker",
      "author": "Firstname Lastname <[email protected]>",
      "main": "app.js",
      "scripts": {
        "start": "node app.js"
      },
      "dependencies": {
        "express": "^4.16.1"
      }
    }
    
  • エクスプレスを使用します.JSフレームワーク、アプリケーションを作成します.Webアプリケーションを記述するJSファイル:
  • const express = require('express')
    const app = express()
    const PORT = 3000
    const HOST = '0.0.0.0'
    
    // App
    const app = express()
    app.get('/', (req, res) => {
      res.send('Hello World')
    });
    
    app.listen(PORT, HOST)
    console.log(`Our app running on http://${HOST}:${PORT}`)
    

    アプリを実行する$ node app.jsあなたのブラウザーでhttp://localhost:3000/に行ってください.

    アプリケーションの管理
  • 空のDockerfile
  • を作成する
    Dockerfile
    FROM node:12-alpine3.14
    
    WORKDIR /usr/src/app
    
    COPY package*.json ./
    
    RUN npm install
    
    COPY . .
    
    EXPOSE 8080
    
    CMD [ "node", "app.js" ]
    
    次は何ですか

    Set the working directory to /usr/src/app

    Copy the package.json file to /usr/src/app

    Install node_modules

    Copy all the files from the project's root to /usr/src/app

  • を作成します.Docker無視
  • node_modules
    npm-debug.log
    
    注意:もしあなたがgitで動作しているならば、あなたもあなたのものを加えたいです.Gitディレクトリと.gitignoreファイル.
  • ビルドカーイメージ
  • $ docker build -t hello-world .
    
  • Dockerコンテナを走らせる
  • $ docker run -p 8080:8080 hello-world
    

  • Dockerイメージの共有
    あなたがDockerイメージを共有するために、あなたはDocker Hubで最初のサインアップをしなければなりません.
    Dockerハブは、あなたのチームとコンテナイメージを見つけて、共有することができるDockerサービスです.
    サインアップ後
  • あなたのDockerハブ資格情報でイメージを再作成してください.
  • $ docker build -t [USERNAME]/hello-world .
    
    Dockerハブへの
  • のログイン
  • $ docker login
    
  • イメージをドッカーハブにプッシュ
  • $ docker push [USERNAME]/hello-world
    
    おめでとう!🎉 🎉 イメージは現在、Dockerがインストールされている任意のサーバーまたはPCで使用できます.
    docker run [USERNAME]/hello-world
    

    ドッカー構成
    Dockerの作成はDockerのマルチコンテナアプリケーションを実行するためのツールです.YAMLファイルを使用してアプリケーションのサービスを構成します.その後、単一のコマンドを使用してセットアップからサービスのすべてを構築し、起動します.
    構成は、単一または複数のコンテナのアプリを実行して簡単にできます.コンテナーを構築または実行するには、特に長いコマンドを覚えておく必要はありません.DockerのビルドビルドとDockerを作成できる限り、アプリケーションはスムーズに動作します.
    プロジェクトルートディレクトリの
  • 、Dockerの作成を作成します.YMLファイル.
  • Dockerの作成気象研
    version: '3.8'  #specifies docker compose version
    services:
      web:
        build:
          context: ./
          target: dev
        volumes:
          - .:/src
        command: npm run start:dev
        ports:
          - "8080:8080"
        environment:
          NODE_ENV: development
          DEBUG: nodejs-docker-express:*
    
    この記事では、私はビルドコンテキストとDEDに設定されたターゲットを持つサービス名Webを持っています.
    ボリュームはDockerにローカルディレクトリからのコピーと同期の変更を指示します.Dockerコンテナで/srcを持つホストの.
    ポート8080を露出することはノードがあるポートを公開します.JS ExpressのWebサーバーがデフォルトで動作します.

    ビルドと構成を使用してアプリケーションを実行する
  • Docker作成コマンドを実行してアプリケーションを起動します
  • $ docker-compose up
    
    ブラウザで
  • へのアクセスhttp://localhost:8000/は、実行中のアプリケーションを表示します.
  • DOCHER COMMAND DOWNコマンドを使用して実行を停止します.
  • $ docker-compose down
    

    結論
    Dockerの作成多数のコンテナを起動するための優れたツールです.この記事のために、私は単にノードを使用しました.つのコンテナを実行している.
    ノード.JSとDockerは水泳に沿って取得します.開発者の使用経験が大幅にスムーズになります.あなたはより高度なDockerとNodeを学ぶための出発点としてこの記事を使用することができます.JSスキル.
    😊 楽しいコーディングを持っている!😊
    必ず私のコメントを残してください.
    あなたはTwitterで私と接続することができます
    またはlinkeddin