Vagrantfile
- ベースイメージにはubuntu-16.04を使用します。
-
config.vm.provision "docker"
、
config.vm.provision :docker_compose
これでDockerとdocker-composeをインストールしてもらいます。 - docker上でrailsアプリを起動した際(rails s)には、
http://localhost:5000
にアクセスするとブラウザからアクセスできます。 - ポートは
config.vm.network "forwarded_port", guest: 3000, host: 5000
で自由に変更できます。 - localのエディタでコードを編集した場合、変更が反映されません。ので、
config.vm.synced_folder
こちらでrsync使いましょう。 - メモリーなどのVMのハード面は
vb.memory = "4096"
このように調整しましょう。 - 起動時(vagrant up)にシェルスクリプトを走らせて、必要なものをインストール自動化しましょう。このように
config.vm.provision :shell, :path => "setup.sh", privileged: true
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "bento/ubuntu-16.04"
config.vm.provision "docker"
config.vm.provision :docker_compose
config.vm.network "forwarded_port", guest: 80, host: 9000
config.vm.network "forwarded_port", guest: 443, host: 443
config.vm.network "forwarded_port", guest: 3000, host: 5000
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.synced_folder "share/", "/vagrant/share", type: "rsync",
rsync__args: %w(--verbose --archive --delete -z --copy-links --times),
rsync__chown: false
config.vm.provider "virtualbox" do |vb|
vb.memory = "4096"
end
config.vm.provision :shell, :path => "setup.sh", privileged: true
config.vm.provision :shell, :path => "ruby.sh", privileged: false
config.vm.provision :shell, :path => "db_web_node.sh", privileged: true
end
setup.sh
Vagrantfileと同じ階層に作成しましょう。
このシェルスクリプトではOSの更新とrbenvのインストールを行います。
home='/home/vagrant'
######################
# general
######################
apt-get -y update
# GCC4.9
add-apt-repository -y ppa:ubuntu-toolchain-r/test
apt-get -y update
# Kernel
apt-get -y install linux-image-extra-$(uname -r) linux-image-extra-virtual
######################
# rbenv
######################
# rbenv
git clone https://github.com/rbenv/rbenv.git ${home}/.rbenv
# .bashrcに追記
echo "export PATH=\"${home}/.rbenv/bin:$PATH\"" >> ${home}/.bash_profile
echo 'eval "$(rbenv init -)"' >> ${home}/.bash_profile
# ruby-build
git clone https://github.com/rbenv/ruby-build.git "${home}/.rbenv/plugins/ruby-build"
ruby.sh
Vagrantfileと同じ階層に作成しましょう。
このシェルスクリプトではrubyのインストールを行います。
home='/home/vagrant'
#######################
# ruby
#######################
sudo ~/.rbenv/bin/rbenv install 2.4.0
sudo ~/.rbenv/bin/rbenv global 2.4.0
sudo ~/.rbenv/bin/rbenv rehash
db_web_node.sh
Vagrantfileと同じ階層に作成しましょう。
このシェルスクリプトではrails, postgres, nginx, nodejsをインストールします。
home='/home/vagrant'
#######################
# rails
#######################
sudo apt-get -y install ruby-dev zlib1g-dev gcc make
gem install bundler
gem install pkg-config -v "~> 1.1.7"
sudo apt-get -y install libxml2-dev
sudo apt-get -y install libxslt-dev
gem install nokogiri -- --use-system-libraries
gem install rails --no-ri --no-rdoc
# #######################
# # postgres
# #######################
# # postgres sqlite3 install
apt-get -y install libpq-dev libsqlite3-dev
# #######################
# # nginx
# #######################
# # nginx install
apt-get -y install nginx
# #######################
# # nodejs
# #######################
# # nodejs npm install
apt-get -y install nodejs npm
npm cache clean
npm install n -g
n stable
ln -sf /usr/local/bin/node /usr/bin/node
apt-get -y purge nodejs npm
#######################
# version
#######################
echo 'node -v' >> "${home}/.bash_profile"
echo 'ruby -v' >> "${home}/.bash_profile"
echo 'rails -v' >> "${home}/.bash_profile"
echo 'docker -v' >> "${home}/.bash_profile"
echo 'docker-compose -v' >> "${home}/.bash_profile"
使い方
- Vagrant, VirtualBoxをインストール
- Vagrantfile, setup.sh, ruby.sh, db_web_node.shを同じ階層に作成
- 上記ファイルがある階層に移動して
vagrant up
を実行する -
vagrant ssh
やsshが使えるターミナルソフトでアクセスする - 以上