はじめに
「東京都の新型コロナウイルス感染症対策サイト」についてローカルのVagrant環境で動作確認をする方法についてまとめました。
環境
以下の環境で確認しています。ホストOSはMacOSですが、ゲストOSが同じであれば大きくは変わらないと思います。
- ホストOS:MacOS Catalina
- ゲストOS:CentOS7
- 仮想環境:Vagrant2.2.7 + VirtualBox6.0.18
構築手順
前提としてVagrantとVirtualBoxのインストールは環境していることとします。
仮想環境(CentOS)
CentOSのインストール
vagrantでCentOS7の環境を構築します。
mkdir tokyo-covid19
cd tokyo-covid19
vagrant init centos/7
ホストOSから接続できるように、ネットワークの設定をします。ここではVirtualBox用のプライベートネットワークを追加することにしています。
Vagrantfileの以下の部分をコメントアウトしてゲストOSのIPアドレスを指定します。
config.vm.network "private_network", ip: "192.168.2.100"
デフォルトではゲストOSのメモリが512MBなので2GBに増やします。
config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true
#
# # Customize the amount of memory on the VM:
vb.memory = "2048"
end
ゲストOSを起動してSSHで接続します。
vagrant up
vagrant ssh
前提ソフトウェア(git、node.js、g++)のインストール
環境構築には、CentOS上に、ソースコードを取得するためのgit、フレームワークを実行するためのnode.js、パッケージのコンパイルのためのyarnとg++のインストールが必要です。
node.jsのインストール
sudo yum install https://rpm.nodesource.com/pub_12.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm
sudo yum -y install nodejs
g++のインストール
sudo yum install gcc-c++
yarnのインストール
sudo npm install -g yarn
ファイアウォールの停止
デフォルトではCentOSファイアウォールが起動しているため停止します。
sudo systemctl stop firewalld
新型コロナウイルス感染症対策サイトの構築
githubからソースコード一式を取得する
git clone https://github.com/tokyo-metropolitan-gov/covid19
cd covid19
※ ここでREADME通りだとyarn installとなるのですが、途中でnode.jsがOut of Memoryになってしまったので、ヒープサイズを拡張します
package.jsonのdevの箇所に、「NODE_OPTIONS=--max_old_space_size=2048」を追記し、ヒープサイズを2GBにします。
"scripts": {
"dev": "cross-env NODE_OPTIONS=--max_old_space_size=2048 NODE_ENV=development nuxt-ts",
"build": "nuxt-ts build",
"start": "cross-env NODE_ENV=production nuxt-ts start",
パッケージのインストールを行い、dev環境を起動します。
なお、ホストOSから接続するためには「--hostname 0.0.0.0」オプションを付ける必要があります。
yarn install
yarn dev --hostname 0.0.0.0
ホストOSから接続確認
ビルドが完了したら、ホストOSから「http://192.168.2.100:3000」にアクセスします。
問題なければ、新型コロナウイルス感染症対策サイトが表示されます。