Pleskに Next.js アプリをデプロイする

● 1. 「拡張」メニューからNode.jsインストールする

● 2. 対象となるドメインで Node.js を有効にする

● 3. 対象となるドメインで Node.js を設定する

● 4. app.js を新規作成して設定する

1. node_modules/next/dist/bin/next を app.js へコピーします。

2. app.js のパスを書き換えます

require("../build/output/log")

    ↓

require("./node_modules/next/dist/build/output/log")
require("next/dist/compiled/arg/index.js")

    ↓

require("./node_modules/next/dist/compiled/arg/index.js")

以上です。
あとはPleskから「アプリを起動」を実行します

● 5. アプリの更新(再ビルド)後、アプリのリスタートは必要か?

リスタートは必要ないですが tmp/restart.txt を touch すれば、次回のアクセス時に自動更新されます。

touch /YOUR/APP/PATH/tmp/restart.txt

● 6. 更新時のCD(継続的デリバリー)は

next.config.js

( NEXTJS_BUILD_DISTが設定してある場合はそのディレクトリをセット。 設定されてない場合はデフォルトの .next をセット )

module.exports = {
  distDir: process.env.NEXTJS_BUILD_DIST ? process.env.NEXTJS_BUILD_DIST : '.next',
}

次のようなシェルスクリプトを用意しておいて, CI / CD から ssh で叩く。 と言うのがシンプルで良いかもしれません。

deploy.sh
(git pullして、ビルドします)

TARGET='/var/www/vhosts/YOUR/APP/PATH';

CURRENT=$(cd $(dirname $0);pwd)

if [ $CURRENT = $TARGET ]; then
  echo "===== デプロイを行います ====="

  echo "1. git pull します"
  git pull origin master
  echo ""

  echo "2. npm run build します"
  export NEXTJS_BUILD_DIST=.next__deploy
  npm run build
  echo ""

  echo "3. .nextディレクトリへコピーします"
  rm -rf .next
  cp -r .next__deploy .next
  export -n NEXTJS_BUILD_DIST
  echo ""

  echo "4. touch tmp/restart.txt  します"
  touch tmp/restart.txt 
  echo ""

  echo "===== デプロイが完了しました ====="

else
  echo "ディレクトリが違います"
  echo $CURRENT
  echo $TARGET
fi
添付ファイル1
No.2089
09/13 17:21

edit

添付ファイル