Docker イメージ + nginx を使用して Vue プロジェクトをデプロイする方法

Docker イメージ + nginx を使用して Vue プロジェクトをデプロイする方法

1. Vueプロジェクトのパッケージ化

開発されたvueプロジェクトに次の名前を入力し、パッケージ化してdistフォルダを生成します。

糸ビルド / npm 実行ビルド

この時点で、ルート ディレクトリに追加のフォルダー (公開したい内容が含まれる dist フォルダー) が作成されます。

dist ディレクトリ全体をサーバーに転送し、静的リソース サイトとしてデプロイすると、プロジェクトに直接アクセスできます。

2. nginxイメージを取得する

nginx は、高性能な HTTP およびリバース プロキシ サーバーです。ここでは、nginx イメージをベースとして使用して、vue アプリケーション イメージを構築します。

ターミナルに次のように入力します:

docker プル nginx

nginx イメージを取得できます。

Docker イメージは、コンテナの実行に必要なプログラム、ライブラリ、リソース、構成、およびその他のファイルを提供するだけでなく、実行時に用意されたいくつかの構成パラメータ (匿名ボリューム、環境変数、ユーザーなど) も含む特別なファイル システムです。 イメージには動的なデータは含まれておらず、作成後にその内容は変更されません。

ターミナルで次のコマンドを入力してnginxイメージを確認します。

dockerイメージls

ミラーリングの結果は次のようになります。

3. nginx config設定ファイルを作成する

プロジェクトのルートディレクトリにnginxフォルダを作成し、そのフォルダに新しいファイルdefault.confを作成します。

サーバー{
  聞く 80;
  server_name ローカルホスト;

  #文字セット koi8-r;
  access_log /var/log/nginx/host.access.log メイン;
  error_log /var/log/nginx/error.log エラー;

  位置 / {
    ルート /usr/share/nginx/html;
    インデックス index.html index.htm;
    try_files $uri $uri/ /index.html;
  }

  #エラーページ 404 /404.html;

  # サーバーのエラーページを静的ページ /50x.html にリダイレクトします
  #
  エラーページ 500 502 503 504 /50x.html;
  場所 = /50x.html {
    ルート /usr/share/nginx/html;
  }
}

注意⚠️: vue-router が履歴モードを使用している場合、 try_files $uri $uri/ /index.html; は非常に重要です。 ! !

私たちのアプリケーションはシングルページ クライアント アプリケーションであるため、背景が正しく構成されていない場合、ユーザーがブラウザーでアドレスにアクセスしたときに 404 が返されます。

したがって、すべての状況をカバーするには、サーバー側で候補リソースを追加する必要があります。URL がどの静的リソースにも一致しない場合は、同じ index.html ページが返される必要があります。このページは、アプリが依存するページです。

上記のファイルはホームページを /usr/share/nginx/html/index.html として定義しているので、構築した index.html ファイルと関連する静的リソースを後で /usr/share/nginx/html ディレクトリに配置できます。

4. Dockerfileを作成する

# nginxからベースイメージを設定する
# 著者を定義します MAINTAINER lihui <[email protected]>
#distファイルの内容を/usr/share/nginx/html/ディレクトリにコピーします。COPY dist/ /usr/share/nginx/html/
#nginxイメージのデフォルト設定をローカルのdefault.conf設定に置き換えます。COPY nginx/default.conf /etc/nginx/conf.d/default.conf

5. Dockerfileに基づいてVueアプリケーションイメージを構築する

次のコマンドを実行し、最後の「.」を忘れないようにしてください。

docker build -t テスト。

-t はイメージに名前を付けるために使用され、test は生成されたイメージの名前であり、. は現在のディレクトリ内の Dockerfile に基づいてイメージを構築するために使用されます。

Vueベースの画像が生成されました!

以上がDockerイメージ+nginxでVueプロジェクトをデプロイする方法の詳細な内容です。VueプロジェクトのDockerデプロイの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • フロントエンド Vue サービスの Docker コンテナ デプロイ (初心者向けチュートリアル)
  • Springboot および Vue プロジェクトの Docker デプロイメントの実装手順
  • DockerでVueプロジェクトをデプロイする方法を教えます
  • vue-cli3 プロジェクトの構築最適化から Docker デプロイ方法まで
  • Dockerコンテナを使用してVueプログラムをデプロイする

<<:  Vue カプセル化に基づくプルダウン更新およびプルアップ読み込みコンポーネント

>>:  MySQL 8.0 の非表示インデックスの詳細な説明

推薦する

1 つの記事で React における Redux の初期の使用を理解する

Redux はデータ状態管理プラグインです。React や Vue を使用してコンポーネント化された...

メンテナンス可能なJSコードの書き方を教えます

目次保守可能なコードとは何ですか?コード規約1. 読みやすさ2. 変数と関数の命名3. 透過的な変数...

Docker Alpine イメージのタイムゾーン問題に対する完璧な解決策

最近、Docker を使用して Java アプリケーションをデプロイしていたときに、タイムゾーンが間...

Vue の大容量ファイルアップロードとブレークポイント再開アップロードの実装

目次ファイルアップロードのための2つのソリューションファイルストリーム(フォームデータ)に基づくクラ...

Oracle を MySQL に置き換える際の問題と解決策

目次移行ツールアプリケーション変換mysql8.0 ドライバ パッケージを追加データソース構成の変更...

Docker、Nginx、Jenkins をベースにした自動フロントエンド デプロイメント

目次事前準備展開ターゲットDocker環境構築クラウドサーバーに接続Docker環境をインストールす...

中国語フォントの英語名まとめ

CSS の font-family プロパティを使用して中国語フォントを参照する場合、フォントを定義...

LinuxサーバにおけるNginxとApacheの共存の実装方法の分析

この記事では、Linux サーバー上で Nginx と Apache の共存を実装する方法について説...

Javascript 非同期プログラミング: Promise を本当に理解していますか?

目次序文基本的な使い方文法エラー処理プロミスチェーン呼び出し非同期と待機よく使われる方法1. Pro...

vue3 を使用してマテリアル ライブラリを構築する方法

目次なぜマテリアルライブラリが必要なのでしょうか?材質は何ですか?素材の種類fuep、vue3 ベー...

Vueライフサイクルの詳細な説明

目次ライフサイクルを理解する理由ライフサイクルとはライフサイクルフック関数作成され、マウントされたフ...

スライド階段効果を実現するjQuery

この記事では、階段スライド効果を実現するためのjQueryの具体的なコードを参考までに紹介します。具...

CSS3はシームレスなスクロールと手ぶれ防止を実現します

質問画像とテキストのシームレスなスクロールは、一般的に携帯電話では良い効果をもたらしますが、一部のモ...

Windows で複数の MySQL インスタンスを実行する方法

序文Windows では、各インスタンスに適切なパラメータを使用してコマンド ラインから複数の My...

1時間で学ぶMySQLの基礎

目次MySQL を使い始めるMySQL 管理6. MySQL サーバーを起動および停止します。 7....