Nuxt.jsプロジェクトのDockerデプロイメントの実装

Nuxt.jsプロジェクトのDockerデプロイメントの実装

Docker 公式ドキュメント: https://docs.docker.com/

Docker はオープンソースのアプリケーション コンテナ エンジンであり、開発者はアプリケーションと依存関係をポータブル イメージにパッケージ化して、一般的な Linux または Windows マシンに公開し、仮想化も実現できます。コンテナーは完全なサンドボックス メカニズムを使用し、相互にインターフェイスを持ちません。

dockerを使用してnuxt.jsプロジェクトをデプロイする

1. ノードイメージを構築する

ノード:alpineから

アルパインバージョンを使用する理由は何ですか?

他の Docker イメージと比較すると、容量が非常に小さく、わずか 5 MB 程度 (Ubuntu シリーズのイメージの場合は約 200 MB) で、非常に使いやすいパッケージ管理メカニズムを備えています。公式イメージは docker-alpine プロジェクトから提供されています。 現在、Docker はベースイメージ環境として Ubuntu の代わりに Alpine を使用することを公式に推奨しています。これにはいくつかの利点があります。これらには、イメージのダウンロード速度の高速化、イメージのセキュリティの向上、ホスト間の切り替えの容易化、ディスク領域の使用量の削減などが含まれます。

2.プロジェクトの保存ディレクトリを設定する

mkdir -p /app/src を実行します。

3. プロジェクトコードをイメージにコピーする

コピー ./src /app/src

4. コマンドを実行するディレクトリを指定する

ワークディレクトリ /app/src

5. ホストを設定する

環境ホスト 0.0.0.0

6. プロジェクトのインストールとコンパイルを実行する

npm install を実行 npm run build を実行 npm cache clean --force を実行

7. 外部アクセスポートを設定する

エクスポーズ3000

8. nuxtプロジェクト実行コマンドを実行する

CMD ["npm", "開始"]

完全なDockerfile

ノード:alpineから

mkdir -p /app/src を実行します。
コピー ./src /app/src
ワークディレクトリ /app/src

環境変数ホスト "0.0.0.0"

sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_REPOSITORIES}/g" /etc/apk/repositories を実行します。

apk add --no-cache make gcc g++ python を実行します

npmインストールを実行
実行 npm run build
npm cache clean --force を実行します。

apk del make gcc g++ python を実行

エクスポーズ3000
CMD ["npm", "開始"]

プロジェクトで sass または scss を使用する場合は、python 環境に依存する必要があるため、python をインストールする必要があります。もちろん、関連リソースをコンパイルした後、対応する依存関係を削除してイメージのサイズを縮小することもできます。

Dockerを実行する

1. イメージを構築する

docker build -t nuxt-demo

2. コンテナを起動する

docker run -dt -p 3000:3000 nuxt-demo

3. アクセス

ブラウザを開いて127.0.0.1:3000にアクセスします。

1. Docker Compose を使用すると、コンテナをオーケストレーションし、マルチコンテナ アプリケーションを迅速にデプロイできます。
2. nginx を使用してコンテナをプロキシし、ポートの形式でコンテナに直接アクセスすることを回避できます。

Nuxt.js プロジェクトの Docker デプロイメントの実装に関するこの記事はこれで終わりです。Nuxt.js の Docker デプロイメントに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • nuxt.jsは、プロジェクトのパッケージ環境操作を区別するために環境変数を追加します。
  • nuxt.js サーバーサイドレンダリングにおける axios と proxy の設定操作
  • Nuxt.js nuxt-link と router-link の違い
  • Nuxt.js ルーティング ジャンプ操作 (ページ ジャンプ nuxt-link)
  • nuxt.js はミドルウェアでルーティング認証を実装します
  • Nuxt.js の静的リソースとパッケージ化操作
  • nuxt.js プロジェクトの作成時にエラー プロンプト ページ操作を追加する
  • nuxt.js プロジェクトのフローチャートを作成する
  • nuxt.js 複数の環境変数の設定

<<:  mysql 10進データ型変換の実装

>>:  W3C チュートリアル (4): W3C XHTML アクティビティ

推薦する

Vueは宮殿のグリッド回転抽選を実現します

Vueは宮殿グリッド回転抽選(CrossFireのxx転生に似ている)を実装しています。参考までに、...

MySQL がエラーを報告: ファイルが見つかりません: './mysql/plugin.frm' 解決策

問題を見つける最近、仕事中に問題が見つかりました。問題は、MySQL ディスクがいっぱいだったことで...

実用的なウェブオンラインツール12選

1.ファビコン.cc ico アイコンの Web サイトをオンラインで作成するには、画像をアップロー...

Docker で Oracle 11g イメージ構成をプルダウンする際の問題を分析する

1. イメージをプルするdocker pull レジストリ.cn-hangzhou.aliyuncs...

Nginx リバース プロキシはポート 80 のリクエストを 8080 に転送します

まず、一連の概念を理解しましょう。nginx リバース プロキシとは何でしょうか?リバース プロキシ...

CentOS6.9+Mysql5.7.18 ソースコードのインストール詳細チュートリアル

CentOS6.9+Mysql5.7.18 ソースコードのインストールでは、以下の操作を root ...

Mysql5.7 のグループ連結関数を使用するときにデータが切り捨てられる問題に対する完璧な解決策

一昨日、本番環境でGROUP_CONCAT関数を使用して選択したデータが切り捨てられ、最大長が102...

HTML 文法百科事典_HTML 言語文法百科事典 (必読)

ボリュームラベル、プロパティ名、説明002 <! - - ... - -> コメント00...

ウェブページからテキスト透かしを削除する2つの簡単な方法

<br /> 特定の Web サイトを閲覧して、優れた Web ページを見つけた場合、そ...

Linux 向けの強化されたスクリーンショットと共有ツール: ScreenCloud

ScreenCloud は、必要だとは思わなかった素晴らしい小さなアプリです。デスクトップ Lin...

JS配列ループ方式と効率分析の比較

配列メソッドJavaScript には多くの配列メソッドが用意されています。次の図は、ほとんどの配列...

JavaScript配列の一般的なメソッドの詳細な説明

目次元の配列を変更しない方法1. 連結文法:パラメータ:戻り値: 2. 参加する文法:パラメータ:戻...

フロントエンドパフォーマンス最適化に関する補足記事

序文私は、Web サイトのフロントエンド パフォーマンス最適化のための JavaScript と C...

CSS3 フィルター (フィルタ) ウェブページのグレーまたは黒モードのサンプルコードを実現

フロントエンドcss3 フィルターは、Web ページのグレー効果を実現できるだけでなく、ナイト モー...

TCPパフォーマンスチューニングの実装原理とプロセス分析

3ウェイハンドシェイクフェーズクライアントSYNパケットの再試行回数sysctl -w net.ip...