2013-06-10 17:29:24 +02:00
|
|
|
# -*- mode: ruby -*-
|
|
|
|
|
# vi: set ft=ruby :
|
|
|
|
|
|
2015-08-28 21:10:28 -07:00
|
|
|
BOX_NAME = ENV["BOX_NAME"] || "bento/ubuntu-14.04"
|
2016-03-03 17:09:26 -08:00
|
|
|
BOX_CPUS = ENV["BOX_CPUS"] || "1"
|
2014-12-23 23:43:11 -08:00
|
|
|
BOX_MEMORY = ENV["BOX_MEMORY"] || "1024"
|
2013-06-10 18:56:43 -07:00
|
|
|
DOKKU_DOMAIN = ENV["DOKKU_DOMAIN"] || "dokku.me"
|
2013-06-10 17:29:24 +02:00
|
|
|
DOKKU_IP = ENV["DOKKU_IP"] || "10.0.0.2"
|
2015-04-02 09:27:10 +02:00
|
|
|
FORWARDED_PORT = (ENV["FORWARDED_PORT"] || '8080').to_i
|
2013-10-14 19:41:53 -03:00
|
|
|
PREBUILT_STACK_URL = File.exist?("#{File.dirname(__FILE__)}/stack.tgz") ? 'file:///root/dokku/stack.tgz' : nil
|
2015-01-12 01:37:11 -05:00
|
|
|
PUBLIC_KEY_PATH = "#{Dir.home}/.ssh/id_rsa.pub"
|
2013-10-14 19:41:53 -03:00
|
|
|
|
2015-03-27 14:25:52 -07:00
|
|
|
make_cmd = "DEBIAN_FRONTEND=noninteractive make -e install"
|
2013-10-14 19:41:53 -03:00
|
|
|
if PREBUILT_STACK_URL
|
|
|
|
|
make_cmd = "PREBUILT_STACK_URL='#{PREBUILT_STACK_URL}' #{make_cmd}"
|
|
|
|
|
end
|
2013-06-10 17:29:24 +02:00
|
|
|
|
|
|
|
|
Vagrant::configure("2") do |config|
|
2015-01-11 18:39:12 -05:00
|
|
|
config.ssh.forward_agent = true
|
|
|
|
|
|
2013-06-10 17:29:24 +02:00
|
|
|
config.vm.box = BOX_NAME
|
2013-10-14 19:41:53 -03:00
|
|
|
|
2013-06-10 17:29:24 +02:00
|
|
|
config.vm.provider :virtualbox do |vb|
|
|
|
|
|
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
|
2013-11-03 13:09:32 -05:00
|
|
|
# Ubuntu's Raring 64-bit cloud image is set to a 32-bit Ubuntu OS type by
|
|
|
|
|
# default in Virtualbox and thus will not boot. Manually override that.
|
|
|
|
|
vb.customize ["modifyvm", :id, "--ostype", "Ubuntu_64"]
|
2016-03-03 17:09:26 -08:00
|
|
|
vb.customize ["modifyvm", :id, "--cpus", BOX_CPUS]
|
2014-02-15 17:06:39 -06:00
|
|
|
vb.customize ["modifyvm", :id, "--memory", BOX_MEMORY]
|
2013-06-10 17:29:24 +02:00
|
|
|
end
|
2013-10-14 19:41:53 -03:00
|
|
|
|
2015-10-25 20:09:37 -04:00
|
|
|
config.vm.provider :vmware_fusion do |v, override|
|
|
|
|
|
v.vmx["memsize"] = BOX_MEMORY
|
|
|
|
|
end
|
|
|
|
|
|
2015-01-12 00:07:40 -05:00
|
|
|
config.vm.define "empty", autostart: false
|
|
|
|
|
|
2015-01-11 18:39:12 -05:00
|
|
|
config.vm.define "dokku", primary: true do |vm|
|
2015-09-23 16:55:02 -05:00
|
|
|
vm.vm.synced_folder File.dirname(__FILE__), "/root/dokku"
|
2015-04-02 09:27:10 +02:00
|
|
|
vm.vm.network :forwarded_port, guest: 80, host: FORWARDED_PORT
|
2015-01-11 18:39:12 -05:00
|
|
|
vm.vm.hostname = "#{DOKKU_DOMAIN}"
|
|
|
|
|
vm.vm.network :private_network, ip: DOKKU_IP
|
2015-04-18 03:23:30 -04:00
|
|
|
vm.vm.provision :shell, :inline => "export DEBIAN_FRONTEND=noninteractive && apt-get update > /dev/null && apt-get -qq -y install git > /dev/null && cd /root/dokku && #{make_cmd}"
|
2015-01-11 18:39:12 -05:00
|
|
|
vm.vm.provision :shell, :inline => "cd /root/dokku && make dokku-installer"
|
2015-12-17 13:30:34 -08:00
|
|
|
vm.vm.provision :shell do |s|
|
|
|
|
|
s.inline = <<-EOT
|
|
|
|
|
echo '"\e[5~": history-search-backward' > /root/.inputrc
|
|
|
|
|
echo '"\e[6~": history-search-forward' >> /root/.inputrc
|
|
|
|
|
echo 'set show-all-if-ambiguous on' >> /root/.inputrc
|
|
|
|
|
echo 'set completion-ignore-case on' >> /root/.inputrc
|
|
|
|
|
EOT
|
|
|
|
|
end
|
2015-01-11 18:39:12 -05:00
|
|
|
end
|
|
|
|
|
|
2015-09-23 16:55:02 -05:00
|
|
|
# For windows users. Sharing folder from windows creates problem with sym links and so, sync the repo instead from GOS.
|
|
|
|
|
config.vm.define "dokku-windows", autostart: false do |vm|
|
|
|
|
|
vm.vm.network :forwarded_port, guest: 80, host: FORWARDED_PORT
|
|
|
|
|
vm.vm.hostname = "#{DOKKU_DOMAIN}"
|
|
|
|
|
vm.vm.network :private_network, ip: DOKKU_IP
|
|
|
|
|
vm.vm.provision :shell, :inline => "export DEBIAN_FRONTEND=noninteractive && apt-get update > /dev/null && apt-get -qq -y install git > /dev/null"
|
|
|
|
|
vm.vm.provision :shell, :inline => "cd /vagrant/ && export DOKKU_BRANCH=`git symbolic-ref -q --short HEAD 2>/dev/null` && export DOKKU_TAG=`git describe --tags --exact-match 2>/dev/null` && cd /root/ && cp /vagrant/bootstrap.sh ./ && bash bootstrap.sh"
|
|
|
|
|
end
|
|
|
|
|
|
2015-01-11 18:39:12 -05:00
|
|
|
config.vm.define "dokku-deb", autostart: false do |vm|
|
2015-09-23 16:55:02 -05:00
|
|
|
vm.vm.synced_folder File.dirname(__FILE__), "/root/dokku"
|
2015-05-12 14:27:49 -04:00
|
|
|
vm.vm.network :forwarded_port, guest: 80, host: FORWARDED_PORT
|
2015-01-11 18:39:12 -05:00
|
|
|
vm.vm.hostname = "#{DOKKU_DOMAIN}"
|
|
|
|
|
vm.vm.network :private_network, ip: DOKKU_IP
|
|
|
|
|
vm.vm.provision :shell, :inline => "cd /root/dokku && make install-from-deb"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
config.vm.define "build", autostart: false do |vm|
|
2015-09-23 16:55:02 -05:00
|
|
|
vm.vm.synced_folder File.dirname(__FILE__), "/root/dokku"
|
2015-08-25 12:24:17 -04:00
|
|
|
vm.vm.network :forwarded_port, guest: 80, host: FORWARDED_PORT
|
|
|
|
|
vm.vm.hostname = "#{DOKKU_DOMAIN}"
|
|
|
|
|
vm.vm.network :private_network, ip: DOKKU_IP
|
2015-09-23 16:55:02 -05:00
|
|
|
vm.vm.provision :shell, :inline => "export DEBIAN_FRONTEND=noninteractive && apt-get update > /dev/null && apt-get -qq -y install git > /dev/null && cd /root/dokku && #{make_cmd}"
|
2015-01-11 18:39:12 -05:00
|
|
|
vm.vm.provision :shell, :inline => "cd /root/dokku && make deb-all"
|
|
|
|
|
end
|
2015-01-12 01:37:11 -05:00
|
|
|
|
2016-02-15 14:59:14 +01:00
|
|
|
config.vm.define "build-arch", autostart: false do |vm|
|
|
|
|
|
vm.vm.box = "bugyt/archlinux"
|
|
|
|
|
vm.vm.synced_folder File.dirname(__FILE__), "/dokku"
|
|
|
|
|
vm.vm.synced_folder "#{File.dirname(__FILE__)}/../dokku-arch", "/dokku-arch"
|
|
|
|
|
vm.vm.network :forwarded_port, guest: 80, host: FORWARDED_PORT
|
|
|
|
|
vm.vm.hostname = "#{DOKKU_DOMAIN}"
|
|
|
|
|
vm.vm.network :private_network, ip: DOKKU_IP
|
|
|
|
|
vm.vm.provision :shell, :inline => "cd /dokku && make arch-all", privileged: false
|
|
|
|
|
end
|
|
|
|
|
|
2015-01-12 01:37:11 -05:00
|
|
|
if Pathname.new(PUBLIC_KEY_PATH).exist?
|
|
|
|
|
config.vm.provision :file, source: PUBLIC_KEY_PATH, destination: '/tmp/id_rsa.pub'
|
2015-03-25 02:51:51 -04:00
|
|
|
config.vm.provision :shell, :inline => "rm -f /root/.ssh/authorized_keys && mkdir -p /root/.ssh && sudo cp /tmp/id_rsa.pub /root/.ssh/authorized_keys"
|
2015-01-12 01:37:11 -05:00
|
|
|
end
|
2013-06-10 17:29:24 +02:00
|
|
|
end
|