Skip to content
This repository was archived by the owner on Dec 4, 2023. It is now read-only.

Commit 1e361b3

Browse files
committed
Introduce an initial version of an ARM Vagrant box
1 parent 2147df6 commit 1e361b3

4 files changed

Lines changed: 96 additions & 1 deletion

File tree

Rakefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ task :binary => :compile do
5151
end
5252

5353
namespace :build do
54-
['x86_64-linux', 'x86-linux', 'x86_64-freebsd10'].each do |arch|
54+
['x86_64-linux', 'x86-linux', 'armhf-linux', 'x86_64-freebsd10'].each do |arch|
5555
desc "build binary gem for #{arch}"
5656
task arch do
5757
arch_dir = Pathname(__FILE__).dirname.join("release/#{arch}")

release/armhf-linux/Vagrantfile

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
# -*- mode: ruby -*-
2+
# vi: set ft=ruby :
3+
4+
# All Vagrant configuration is done below. The "2" in Vagrant.configure
5+
# configures the configuration version (we support older styles for
6+
# backwards compatibility). Please don't change it unless you know what
7+
# you're doing.
8+
Vagrant.configure("2") do |config|
9+
# The most common configuration options are documented and commented below.
10+
# For a complete reference, please see the online documentation at
11+
# https://docs.vagrantup.com.
12+
13+
# Every Vagrant development environment requires a box. You can search for
14+
# boxes at https://atlas.hashicorp.com/search.
15+
config.vm.box = "ignisf/debian8-arm"
16+
17+
# Disable automatic box update checking. If you disable this, then
18+
# boxes will only be checked for updates when the user runs
19+
# `vagrant box outdated`. This is not recommended.
20+
# config.vm.box_check_update = false
21+
22+
# Create a forwarded port mapping which allows access to a specific port
23+
# within the machine from a port on the host machine. In the example below,
24+
# accessing "localhost:8080" will access port 80 on the guest machine.
25+
# config.vm.network "forwarded_port", guest: 80, host: 8080
26+
27+
# Create a private network, which allows host-only access to the machine
28+
# using a specific IP.
29+
# config.vm.network "private_network", ip: "192.168.33.10"
30+
31+
# Create a public network, which generally matched to bridged network.
32+
# Bridged networks make the machine appear as another physical device on
33+
# your network.
34+
# config.vm.network "public_network"
35+
36+
# Share an additional folder to the guest VM. The first argument is
37+
# the path on the host to the actual folder. The second argument is
38+
# the path on the guest to mount the folder. And the optional third
39+
# argument is a set of non-required options.
40+
# config.vm.synced_folder "../data", "/vagrant_data"
41+
config.vm.synced_folder ".", "/vagrant", type: 'nfs'
42+
config.vm.synced_folder "../..", "/libv8", type: 'nfs'
43+
44+
45+
# Provider-specific configuration so you can fine-tune various
46+
# backing providers for Vagrant. These expose provider-specific options.
47+
# Example for VirtualBox:
48+
#
49+
# config.vm.provider "virtualbox" do |vb|
50+
# # Display the VirtualBox GUI when booting the machine
51+
# vb.gui = true
52+
#
53+
# # Customize the amount of memory on the VM:
54+
# vb.memory = "1024"
55+
# end
56+
#
57+
# View the documentation for the provider you are using for more
58+
# information on available options.
59+
60+
config.vm.provider :libvirt do |domain|
61+
# domain.uri = 'qemu+unix:///system'
62+
# domain.host = 'virtualized'
63+
domain.kernel = File.expand_path('../vmlinuz', __FILE__)
64+
domain.initrd = File.expand_path('../initrd.img', __FILE__)
65+
domain.cmd_line = 'root=/dev/vda2 rw'
66+
domain.machine_type = 'virt'
67+
domain.machine_arch = 'armv7l'
68+
domain.driver = 'qemu'
69+
domain.cpu_mode = "custom"
70+
domain.cpu_model = nil
71+
domain.graphics_type = 'none'
72+
end
73+
74+
# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
75+
# such as FTP and Heroku are also available. See the documentation at
76+
# https://docs.vagrantup.com/v2/push/atlas.html for more information.
77+
# config.push.define "atlas" do |push|
78+
# push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
79+
# end
80+
81+
# Enable provisioning with a shell script. Additional provisioners such as
82+
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
83+
# documentation for more information about their specific syntax and use.
84+
# config.vm.provision "shell", inline: <<-SHELL
85+
# apt-get update
86+
# apt-get install -y apache2
87+
# SHELL
88+
config.vm.provision "shell", inline: <<-SHELL
89+
sudo apt update
90+
sudo apt install -y software-properties-common
91+
sudo apt dist-upgrade -y
92+
sudo apt install -y build-essential git ruby ruby-dev
93+
sudo gem install bundler
94+
SHELL
95+
end

release/armhf-linux/initrd.img

12.1 MB
Binary file not shown.

release/armhf-linux/vmlinuz

3.11 MB
Binary file not shown.

0 commit comments

Comments
 (0)