序文 プロジェクトでは中間層として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. CSSを通す必要がある背景CSS におけるメディアクエリの用途は、デバイスサイズの判別、マウス...
CocosCreator バージョン: 2.3.4ほとんどのゲームにはレイヤー管理機能があり、例えば...
数日前、図書館はサーバー(Ubuntu 14.04)にセキュリティ上の脆弱性があり、時間通りに修復さ...
1. データを準備するこのテーブルでは次の操作が実行されます 学生テーブルを作成 ( id int ...
背景今日、CodePen を閲覧していたところ、非常に興味深い効果を見つけました。 CodePen ...
1. このマシンに新しい設定ファイルdocker_nginx.confを作成します。 サーバー{ 7...
目次仮想DOM仮想DOMとは何か仮想DOMの役割Vue の仮想 DOM vノードvNodeとはvNo...
tomcat 設定ファイルから、tomcat の起動時にデフォルトで 8080 (8443)、800...
今日はサーバーにログインして、データベース内のいくつかのものを変更する準備をしました。しかし、パスワ...
この記事の例では、JavaScriptでデジタル時計効果を実装するための具体的なコードを参考までに共...
<br />ブラウザが次世代のXHTMLを処理できるようになる前に、このよりリッチなコン...
WeChatアプレットフォームの検証、参考までに具体的な内容は次のとおりです。プラグインWxVali...
目次1. 画像を取得する2. ブローカーサーバーを作成する3. ブローカーを作成する4. Rocke...
<br />原文: http://andymao.com/andy/post/80.ht...
1. ゴミかクラシックか? Web テクノロジーは急速に更新されており、Web サイトのインターフェ...