#はじめに
MacOSでRails環境のVMを生成しWindowsに環境を渡すまでの軌跡です
Rails を用いた共同開発したい
複数人と同じ環境で何かしたいという人には役に立つと思います
今回行うことは下記の流れでします
- Mac でVirtualBox, Vagrantのインストール
- VagrantでUbuntuの環境構築
- git, Rails のインストール
- Rails のサーバー起動からアクセスまで
- Boxの生成
- Windowsに環境を渡す
##環境
- ホストOS: MacOS Mojave
- ゲストOS: Ubuntu18.04
- Ruby: 2.4.1
- Ruby on Rails: 5.2.1
- VMを渡すOS: Windows10
##下準備
###VirtualBox, Vagrantのインストール
自分にあったインストーラーをダウンロードしてインストールしてください
VirtualBox: https://www.virtualbox.org/
Vagrant: http://www.vagrantup.com/
##本題
###VagrantでUbuntuの環境構築
VMを置くためのディレクトリ作成
$ mkdir MyVagrant #VMを置くためのディレクトリ
$ cd MyVagrant
$ mkdir Rails #VM
$ cd Rails
$ vagrant init bento/ubuntu-18.04 #Vagrantfile生成
このコマンドを叩くとVagrantfileができてるので
下記のように書き直す
Vagrant.configure("2") do |config|
config.vm.box = "bento/ubuntu-18.04"
config.vm.network "private_network", ip: "192.168.33.11"
end
$ vagrant up # VM起動
$ vagrant ssh # ssh接続
これでUbuntu18.04の環境構築が完了
###Ruby on Railsの環境構築
(Ubuntu側での操作のためssh後行ってください)
gitとか色々インストール
$ sudo apt-get update
$ sudo apt-get -y install git curl g++ make
$ sudo apt-get -y install zlib1g-dev libssl-dev libreadline-dev
$ sudo apt-get -y install libyaml-dev libxml2-dev libxslt-dev
$ sudo apt-get -y install sqlite3 libsqlite3-dev nodejs
rbenvのインストール
$ cd
$ git clone https://github.com/sstephenson/rbenv.git .rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ exec $SHELL
(git clone でエラーが出た場合, user.name, user.email, 鍵の登録などをすることで解決すると思います.)
ruby-buildのインストール
$ mkdir -p ~/.rbenv/plugins
$ cd ~/.rbenv/plugins
$ git clone https://github.com/sstephenson/ruby-build.git
rubyのインストール (結構時間かかります)
$ rbenv install 2.4.1
$ rbenv global 2.4.1
$ rbenv version #rbenvバージョンの確認
$ ruby -v #rubyバージョン確認
.gemrc の生成
$ cd
$ emacs .gemrc #適当なエディタで生成
install: --no-ri --no-rdoc
update: --no-ri --no-rdoc
Ruby on Railsのインストール
$ gem install rails -v '5.2.1'
$ rbenv rehash
アプリ作成からサーバー起動まで
$ rails new sample #アプリ作成
$ cd sample
$ bundle exec rails server -b 0.0.0.0 #サーバー起動
(rails s だけだとホストOS側からアクセスできない)
ブラウザで 192.168.33.11:3000 にアクセスできたら成功
(192.168.33.11 はVagrantfileで書いた ip)
ターミナルに戻り ctrl+C でサーバを落とす
$ exit # sshから抜ける
$ vagrant halt #VMのシャットダウン
ここまで全てMacOSでの出来事
box生成 から windowsに環境を渡すまで
Mac でpackage.boxの生成
$ vagrant package
どこかに package.box ができていたら成功(結構時間がかかる)
ここから結構大変
ここからWindowsでの操作
####下準備
- USB でもなんでもいいのでWindowsのPCにpackage.box を渡す
- WindowsPC でもVirtualBox, Vagrant の環境を構築
- 適当なterminalの準備 (gitbash or WSL がおすすめ)
terminalを起動
$ mkdir MyVagrant
$ cd MyVagrant # MyVagrantのなかにpackage.boxを移動
$ vagrant box add Ubuntu18 package.box
$ vagrant box list #これでUbuntu18が追加されていればOk
$ vagrant init Ubuntu18 #結構時間かかる
$ cd Ubuntu18
Vagrantfile の編集
Vagrant.configure("2") do |config|
config.vm.box = "bento/ubuntu-18.04"
config.vm.network "private_network", ip: "192.168.33.12"
end
$ vagrant reload #Vagrantfile いじった後これをしないと行けないかも
$ vagrant up
$ vagrant ssh
$ cd sample
$ bundle exec rails server -b 0.0.0.0
ブラウザで 192.168.33.12:3000 にアクセスできたら成功
(192.168.33.12 はVagrantfileで書いた ip)
ターミナルに戻り ctrl+c でサーバを落とす
$ vagrant halt #VMのシャットダウン
これでMac及びWindowsに同じUbuntu環境ができたと思います
お疲れ様です
###おまけ よく使うコマンド
$ vagrant up #VMの起動
$ vagrant ssh #ssh接続
$ vagrant halt #シャットダウン
$ vagrant package #package.box の生成
$ vagrant box add Ubuntu18(box名) package.box(package名) #boxの追加
$ vagrant box list #boxlistの確認
###参照リンク
Railsの環境構築(Ubuntu)
Vagrantの仮想マシンにscpでファイル転送する
Vagrantの中でRailsを起動するまでの手順。
Vagrant + VirtualBox + Ubuntu でRails環境構築
Vagrantでboxファイル作成
Vagrant + VirtualBoxでWindows上に開発環境をサクッと構築する