- put Vagrantfile in ~/Projects
- put Dockerfile in ~/Projects/blog
cd ~/Projects
vagrant reload
vagrant provision
vagrant ssh
cd /vagrant/blog
docker build .
docker run -p 4000:4000 -v /vagrant/blog:/app -i <ID>
FROM ubuntu:14.04 | |
MAINTAINER Ron Waldon <[email protected]> | |
RUN apt-get -y update | |
RUN apt-get -y install build-essential ruby2.0 ruby2.0-dev libxml2-dev libxslt-dev | |
WORKDIR /usr/bin | |
RUN ln -sf ruby2.0 ruby | |
RUN ln -sf gem2.0 gem | |
RUN gem install bundler | |
VOLUME ['/app'] | |
WORKDIR /app | |
EXPOSE 4000 | |
CMD bundle update && bundle exec jekyll serve --watch --drafts --baseurl '' | |
# -*- mode: ruby -*- | |
# vi: set ft=ruby : | |
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! | |
VAGRANTFILE_API_VERSION = "2" | |
$script = <<SCRIPT | |
yum install -y docker-io | |
systemctl daemon-reload | |
systemctl start docker | |
systemctl enable docker | |
SCRIPT | |
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | |
config.vm.box = "chef/fedora-20" | |
config.vm.network "forwarded_port", guest: 80, host: 8080 | |
config.vm.network "forwarded_port", guest: 443, host: 8443 | |
config.vm.network "forwarded_port", guest: 4000, host: 4000 | |
config.vm.network "private_network", type: "dhcp" | |
# config.ssh.forward_agent = true | |
# this synced_folder is the default, but let's be explicit | |
config.vm.synced_folder ".", "/vagrant" | |
config.vm.provider :virtualbox do |vb| | |
vb.customize ["modifyvm", :id, "--ioapic", "on"] | |
vb.customize ["modifyvm", :id, "--memory", "2048"] | |
vb.customize ["modifyvm", :id, "--cpus", "3"] | |
vb.customize ["modifyvm", :id, "--cpuexecutioncap", "80"] | |
end | |
config.vm.provision "shell", inline: $script | |
end |