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 の非表示インデックスの詳細な説明

推薦する

Docker での Tomcat インストールの 404 問題の解決方法

tomcat の containerID を見つけて、tomacat ディレクトリに入ります。 [r...

ウェブページ作成時に標準 HTML コードを使用する際のポイント

多くの Web サイト デザイナーが犯す最も一般的な間違いは、Web ページが IE で正常に表示さ...

Nginx 逆生成 Mogilefs 分散ストレージ例の詳細な説明

1. 分散ストレージシステムの概要情報技術の継続的な発展により、利便性がもたらされる一方で、データ量...

CSS チュートリアル: CSS 属性メディア タイプ

スタイルシートの最も重要な機能の 1 つは、ページ、画面、電子シンセサイザーなどの複数のメディアに適...

Reactはconetxtを通じてマルチコンポーネント値転送関数を実装します

この関数の効果はvue的provide/injectに似ています。 contextを通じて反応できる...

HTMLページにビデオを挿入する方法の概要

ページでビデオ タグを使用する場合は、Ogg Theora または VP8 (これに問題がない場合)...

MySQL データ ウェアハウスを保護するための 5 つのヒント

さまざまなソースからデータを集約することで、中央倉庫を作成できます。データ ウェアハウスは、ビジネス...

HTMLはマーキーを使用してテキストを左右にスクロールします

コードをコピーコードは次のとおりです。 <本文> //マーキーの助けを借りて<MA...

IE8でラベルの背景画像が表示されない問題の解決方法

今日、ちょっとした問題に遭遇し、長い間苦労しました。そのことを皆さんにシェアしたいと思います。 a ...

Ubuntu ターミナル マルチウィンドウ 分割画面 ターミネーター

1. インストールターミネーターの最大の特徴は、1つのウィンドウで複数のターミナルを開くことができる...

フロントエンドのパフォーマンス最適化を学習するための準備として、HTML ページのレンダリング プロセスを理解する (続き)

昨夜、ブラウザのレンダリングプロセスに関するエッセイを書きましたが、小さなコードで説明しただけでした...

HTML テーブルタグチュートリアル (35): 列間属性 COLSPAN

複雑なテーブル構造では、一部のセルが垂直方向に複数のセルにまたがるため、列間属性 COLSPAN を...

CentOS IP接続ネットワーク実装プロセス図

1. システムにログインし、ディレクトリに入ります: cd /etc/sysconfig/netwo...

MYSQL接続ポートが占有され、ファイルパスエラーが発生する問題を解決します

今朝、私は Wampserver を使用してローカルの win7 マシン上に PHP 環境を構築し、...

JavaScript - Vue でのスロットの使用: スロット

目次Vue でのスロットの使用: slotスコープ付きスロット: テンプレートタグで囲む要約するVu...