**文書の過去の版を表示しています。**
VisualStudioでテスト環境構築を構築し、リモートリポジトリにプッシュ、自動デプロイするまでの流れ
ローカルでの設定
ローカルPCにVisual Studio 2019をインストール。
- Visual Studio をインストール
- インストーラで[Node.js 開発] ワークロードを選択
ローカルPCにNode.jsをインストール
- Windows Installer (.msi) 64bit版をインストール(v14.15.3)
Gitのインストール
- https://git-scm.com/download/winからGitをダウンロード
- インストーラの指示に従ってGitをインストール
- インストーラでGit Bashもインストールするようにする
新しいプロジェクトの作成(Express)
- Visual Studio を開く。
- 新しいプロジェクトを作成。
- [基本の Azure Node.js Express 4 アプリケーション プロジェクトの作成] (JavaScript) を選択。 表示されたダイアログ ボックスで、 [作成] を選択。
Git(ローカルリポジトリ)との連携
- Visual Studioの新しく作成したプロジェクト(metasearch_dev)のメニューバーの[Git(G)]を選択
- [Gitリポジトリの作成]を選択
- [その他]→[ローカルのみ]を選択し、Gitリポジトリを作成する
- [オプション]→[ソース管理]→[Git Repository Settings]→[Git グローバル設定]から[ユーザー名]、[メール]を設定。(コミットに必要)
Visual StudioでのGitの操作
- ファイルを編集、保存、確認
- 右側のツールバーから[Git変更]→[変更]→[+]でステージング
- [Git変更]の上部のテキストボックスにコミットメッセージを入力し、[ステージング済みをコミット]をクリックすると、コミット
- [Git変更]の上部のプルダウンメニューからブランチの選択(checkout)やブランチの作成が出来る。マージを行いたい場合は、マージ先のブランチにcheckoutしてから、マージを行う。
リモートの設定(リモートリポジトリ)
m50v251n3への接続を~/.ssh/configに追加する
ssh main
でm50v251n3に接続できるようにした。
m50v251n3サーバにリモートリポジトリを作成
- m50v251n3サーバに接続(
ssh main
) - リモートリポジトリのためのディレクトリを作成。
mkdir /home/yoshitake/metasearch_dev
- リモートリポジトリのためのディレクトリに移動。
cd /home/yoshitake/metasearch_dev
- リモートリポジトリを作成。
git init –bare metasearch_dev.git
- ローカルに戻り、リモートリポジトリを追加。GitBash上でローカルリポジトリに移動してから、次のコマンドを入力。
git remote add metasearch_dev main:/home/yoshitake/metasearch_dev/metasearch_dev.git
(metasearch_devでリモートリポジトリに接続できるようにした)
※Visual StudioからPushしようとするとリモート名がoriginのやつが勝手に作られるらしいので、上のリモート名は素直にoriginにしておいた方がよかった。
リモートリポジトリにPush
- Visual Studioのメニューバーの[Git]→[Push]から[既定のリモート]を選択し、リモート先のURLを入力(main:/home/yoshitake/metasearch_dev/metasearch_dev.git)
- 右側の[Git変更]からPushを行う。
- パスワードが求められるので入力すると、Pushが行われる
- リモートリポジトリ上で
git log
コマンドでPushが成功したことを確認できる。
リモートの設定(Node.jsのインストールとhttpdの更新)
httpsの設定ファイルを作成
サーバにhttpdがインストールされていない場合は、以下のコマンドでインストールし、有効化.
$ sudo yum update
$ sudo yum install httpd
$ sudo systemctl enable httpd
$ sudo systemctl start httpd
/etc/httpd/conf.d/の直下に、hoge.confというファイルを作成。(hogeは変更可能)今回はApacheをプロキシのような中継サーバとして使うので、proxy.confとした。
Node.isのインストール
ローカルPCに入れたnode.jsと同じバージョンをダウンロード、インストール、解凍
wget https://nodejs.org/dist/v14.15.3/node-v14.15.3-linux-x64.tar.xz
xz -dc node-v14.15.3-linux-x64.tar.xz | tar xfv -
node、npm、node_modulesにパスを通す。(~/.bashrcに以下3行を追加)
export NODE_HOME=$HOME/node-v14.15.3-linux-x64
export NODE_PATH=$NODE_HOME/lib/node_modules
export PATH=$NODE_HOME/bin:$PATH
express-generatorをインストール
$ npm install express-generator -g
リモートでの設定(自動デプロイ)
pushした時にm50v251n3側で自動pullする設定(自動デプロイ)
- リモートリポジトリのhooksディレクトリにpost-receiveを作成(デフォルトでpost-receive.sampleがあるので、それをリネームして作成するという情報があるが、見つからないので自分で作成したが問題なく動作した)
- post-receiveに次のコマンドを入力(viエディタを利用)
#!/bin/sh
cd /home/yoshitake/metasearch_dev/metasearch_dev_deploy/metasearch_dev
git –git-dir=.git pull
- Visual StudioからPushすると、自動でデプロイされる。
Expressの設定
- デプロイ先にnode modulesディレクトリがないので、インストール
npm install
- 3001番ポートが使用済みだったので,テスト用のExpressのページのポートを3002番に切り替え
Apache経由でExpressに接続
- /metasearch_devに来たリクエストを3002番ポートに送信するために /etc/httpd/conf.d/proxy.conf に以下を追加
ProxyPass /metasearch_dev/ http://localhost:3002/
ProxyPassReverse /metasearch_dev/ http://localhost:3002/
Express起動
- テスト用のExpressを置いてあるディレクトリに移動
cd /home/yoshitake/metasearch_dev/metasearch_dev_deploy/metasearch_dev/metasearch_dev
- Express起動
npm start
次に以下のURLから本番環境構築を行う。
http://www.suikou.fs.a.u-tokyo.ac.jp/dokuwiki/doku.php?id=%E6%9C%AC%E7%95%AA%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89