序文 プロジェクトでは中間層としてNodeを使用し、Nodeのデプロイにはdockerを使用します。ここではデプロイの要点と手順をまとめて記録します。dockerの導入とインストールについては詳しく説明しません。インターネット上には関連するチュートリアルや記事もたくさんあります。必要に応じて検索して閲覧できます。 プロジェクト構造 `--docker-node |-- データ |-- サーバー |-- アプリ.js |-- Dockerファイル |-- プロセス.yml |-- パッケージ.json docker-compose.yml は、 1. Node.jsプログラムを作成する アプリ 定数 express = require('express'); express() は、定数です。 app.get('/', (req, res) => res.send('hello world!')); アプリをリッスンする(3008); 2. Dockerfileを作成する ノード:8.9-alpineから mkdir -p /usr/src/app を実行します。 ワークディレクトリ /usr/src/app npm set registry を実行します https://registry.npm.taobao.org/ npmインストールを実行 コマンド ["./node_modules/pm2/bin/pm2-docker", "process.yml"] Dockerfile から、pm2-docker を介してノード アプリケーションを実行していることがわかります。PM2 を使用すると、ファイルの変更を監視して、アプリケーションの再起動、ログの保存、その他の効果を実現できます。ここでは、process.yml 構成ファイルが必要です。関連する使用方法については、PM2 ドキュメントを参照してください。 プロセス.yml アプリ: - スクリプト: 'app.js' 名前: 'dokcer-node' 実行モード: 'フォーク' ウォッチ:本当 インスタンス: 1 ログ日付フォーマット: 'YYYY-MM-DD HH:mm Z' ignore_watch: ['node_modules'] 3. docker-compose.ymlを作成する 実稼働環境では、複数のコンテナを使用することがよくあります。構成ファイルを使用して複数の Docker コンテナを管理し、docker-compose を使用してアプリケーションを起動、停止、再起動することができます。 ドッカーの作成 バージョン: "3.0" サービス: サーバーノード: コンテナ名: サーバーノード 建てる: コンテキスト: ./server ボリューム: - ./server:/usr/src/app ポート: - 「3008:3008」 環境: - TZ=アジア/上海 ポーター: 画像: portainer/portainer:1.11.4 コンテナ名: ポーテナー さらす: - 「9000」 ポート: - 「9000:9000」 ボリューム: - /var/run/docker.sock:/var/run/docker.sock - ./data/portainer:/data 環境: - TZ=アジア/上海 4. コンテナを起動する 上記のファイルが作成されたら、次のコマンドを実行してイメージを作成し、コンテナを起動します。 $ docker-compose -f docker-compose.yml アップ -d 5. テスト 1. ローカルポート3008にアクセスする 2. コードが変更されたときのノードの自動再起動機能をテストします。「hello world!」を「restart!!!!」に変更し、ページを再度更新します。 3. Portainer を使用してコンテナを管理します。コマンドラインと比較して、ビジュアル インターフェイスを使用すると、コンテナのログ、コンテナの構成、ステータスを簡単かつ迅速に表示し、コンテナを再起動および削除できます。ローカル ポート 9000 (docker-compese.yml で構成) にアクセスでき、結果は次のようになります。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: WeChatアプレット認証ログインを処理するエレガントな方法
>>: YUM を使用して Linux (CentOS 7) に MySQL 5.7.18 をインストールする方法の詳細なチュートリアル
1. レンダリング 2. ソースコードhtml < 本文 > < div クラス ...
今日、非常に奇妙な問題に遭遇しました。次のコードを見てください。 SimpleDateFormat ...
この記事では、例を使用して、replace と regexp を使用して MySQL で正規表現を置...
序文この記事では、Linux 構成ログ サーバーに関する関連コンテンツを主に紹介し、参考と学習のため...
1. 実験の説明仮想マシンに、 Ubuntu 19.04オペレーティングシステムを手動でインストー...
Seurat は、単一細胞解析用の重量級の R パッケージです。使用したことがある人なら誰でも、その...
目次結論は実践分析拡張機能要約する結論は親コンポーネントでカスタム イベントが定義されている場合、子...
大学 4 年生のときのインターンシップ中に、表内のデータの番号をクリックすると、そのデータの下に新し...
目次1. 概要1.1 querySelector() と querySelectorAll() の使...
Deepin がルートユーザーとして Google Chrome ブラウザを起動できない問題を解決す...
システム: Ubuntu 16.04LTS 1\公式サイトからmysql-5.7.18-linux-...
目次序文1. データベースの基礎知識1. データベースとは何ですか? 2. データベースの分類3. ...
1. transform 属性を使用して、画像を拡大せずに表示します (パスの問題は必要に応じて修正...
King of Glory をプレイしたことがある人なら、このページの効果をよくご存知でしょう。なぜ...
以下は、Shiji Tiancheng が Tencent KartRider ページを呼び出すため...