序文 プロジェクトでは中間層として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 つのモジュールに 3 つのサブモジュールが...
1. xshell6をインストールする2. サーバー接続を作成し、ユーザー名とパスワードを入力します...
最近、友人が私に質問をしました。ページをレイアウトすると、画像の下に 1 ~ 2 ピクセルの空白があ...
アップグレードの背景: MySQLの下位バージョンの脆弱性を解決するために、MySQLはMySQL ...
BEM は、Web 開発に対するコンポーネントベースのアプローチです。ユーザー インターフェイスを独...
MySQL 8.0.13 にはデフォルトでデータ フォルダがあります。このフォルダを削除する必要があ...
最近、Docker の学習や実際の運用で多くの問題に遭遇したので、それを記録するためにブログを書きま...
目次序文コアコードコードのファイル表示部分序文この記事では主に、Vue プロジェクトでの添付ファイル...
描画効果実装コードJavaScript var キャンバス = document.getElemen...
[LeetCode] 176. 2番目に高い給与従業員テーブルから 2 番目に高い給与を取得する ...
<br />以下は開発中に遭遇した問題と、そこから得た経験です。デバッグに時間がかかりま...
水平方向では、テーブルの配置を左、中央、右に設定できます。基本的な構文<テーブル配置=&quo...
序文場合によっては、次の図のような浮動効果の要件が必要になります。 成し遂げる標準的な通常の状況では...
この記事では、Baidu News Navigation Barの効果を実現するための具体的なJSコ...