Update Sandstorm build files
This commit is contained in:
		
							parent
							
								
									16fe1bcb08
								
							
						
					
					
						commit
						7996a267f7
					
				
							
								
								
									
										26
									
								
								.sandstorm/Vagrantfile
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								.sandstorm/Vagrantfile
									
									
									
									
										vendored
									
									
								
							| @ -9,8 +9,17 @@ VM_NAME = File.basename(File.dirname(File.dirname(__FILE__))) + "_sandstorm_#{Ti | |||||||
| # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! | # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! | ||||||
| VAGRANTFILE_API_VERSION = "2" | VAGRANTFILE_API_VERSION = "2" | ||||||
| 
 | 
 | ||||||
|  | # ugly hack to prevent hashicorp's bitrot. See https://github.com/hashicorp/vagrant/issues/9442 | ||||||
|  | # this setting is required for pre-2.0 vagrant, but causes an error as of 2.0.3, | ||||||
|  | # remove entirely when confident nobody uses vagrant 1.x for anything. | ||||||
|  | unless Vagrant::DEFAULT_SERVER_URL.frozen? | ||||||
|  |   Vagrant::DEFAULT_SERVER_URL.replace('https://vagrantcloud.com') | ||||||
|  | end | ||||||
|  | 
 | ||||||
| Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | ||||||
|   config.vm.box = "sandstorm/debian-jessie64" |   # Base on the Sandstorm snapshots of the official Debian 9 (stretch) box with vboxsf support. | ||||||
|  |   config.vm.box = "debian/contrib-stretch64" | ||||||
|  |   config.vm.box_version = "9.3.0" | ||||||
| 
 | 
 | ||||||
|   if Vagrant.has_plugin?("vagrant-vbguest") then |   if Vagrant.has_plugin?("vagrant-vbguest") then | ||||||
|     # vagrant-vbguest is a Vagrant plugin that upgrades |     # vagrant-vbguest is a Vagrant plugin that upgrades | ||||||
| @ -24,7 +33,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | |||||||
|   # We forward port 6080, the Sandstorm web port, so that developers can |   # We forward port 6080, the Sandstorm web port, so that developers can | ||||||
|   # visit their sandstorm app from their browser as local.sandstorm.io:6080 |   # visit their sandstorm app from their browser as local.sandstorm.io:6080 | ||||||
|   # (aka 127.0.0.1:6080). |   # (aka 127.0.0.1:6080). | ||||||
|   config.vm.network :forwarded_port, guest: 6080, host: 6080 |   config.vm.network :forwarded_port, guest: 6080, host: 6080, host_ip: "127.0.0.1" | ||||||
| 
 | 
 | ||||||
|   # Use a shell script to "provision" the box. This installs Sandstorm using |   # Use a shell script to "provision" the box. This installs Sandstorm using | ||||||
|   # the bundled installer. |   # the bundled installer. | ||||||
| @ -71,25 +80,32 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | |||||||
|   if total_kB_ram.nil? or total_kB_ram < 2048000 |   if total_kB_ram.nil? or total_kB_ram < 2048000 | ||||||
|     assign_ram_mb = 512 |     assign_ram_mb = 512 | ||||||
|   else |   else | ||||||
|     assign_ram_mb = (total_kB_ram / 1024 / 2) |     assign_ram_mb = (total_kB_ram / 1024 / 4) | ||||||
|   end |   end | ||||||
|   # Actually apply these CPU/memory values to the providers. |   # Actually apply these CPU/memory values to the providers. | ||||||
|   config.vm.provider :virtualbox do |vb, override| |   config.vm.provider :virtualbox do |vb, override| | ||||||
|     vb.cpus = cpus |     vb.cpus = cpus | ||||||
|     vb.memory = assign_ram_mb |     vb.memory = assign_ram_mb | ||||||
|     vb.name = VM_NAME |     vb.name = VM_NAME | ||||||
|  |     vb.customize ["modifyvm", :id, "--nictype1", "Am79C973"] | ||||||
| 
 | 
 | ||||||
|  |     # /opt/app and /host-dot-sandstorm are used by vagrant-spk | ||||||
|     override.vm.synced_folder "..", "/opt/app" |     override.vm.synced_folder "..", "/opt/app" | ||||||
|     override.vm.synced_folder ENV["HOME"] + "/.sandstorm", "/host-dot-sandstorm" |     override.vm.synced_folder ENV["HOME"] + "/.sandstorm", "/host-dot-sandstorm" | ||||||
|     override.vm.synced_folder "..", "/vagrant" |     # /vagrant is not used by vagrant-spk; we need this line so it gets disabled; if we removed the | ||||||
|  |     # line, vagrant would automatically insert a synced folder in /vagrant, which is not what we want. | ||||||
|  |     override.vm.synced_folder "..", "/vagrant", disabled: true | ||||||
|   end |   end | ||||||
|   config.vm.provider :libvirt do |libvirt, override| |   config.vm.provider :libvirt do |libvirt, override| | ||||||
|     libvirt.cpus = cpus |     libvirt.cpus = cpus | ||||||
|     libvirt.memory = assign_ram_mb |     libvirt.memory = assign_ram_mb | ||||||
|     libvirt.default_prefix = VM_NAME |     libvirt.default_prefix = VM_NAME | ||||||
| 
 | 
 | ||||||
|  |     # /opt/app and /host-dot-sandstorm are used by vagrant-spk | ||||||
|     override.vm.synced_folder "..", "/opt/app", type: "9p", accessmode: "passthrough" |     override.vm.synced_folder "..", "/opt/app", type: "9p", accessmode: "passthrough" | ||||||
|     override.vm.synced_folder ENV["HOME"] + "/.sandstorm", "/host-dot-sandstorm", type: "9p", accessmode: "passthrough" |     override.vm.synced_folder ENV["HOME"] + "/.sandstorm", "/host-dot-sandstorm", type: "9p", accessmode: "passthrough" | ||||||
|     override.vm.synced_folder "..", "/vagrant", type: "9p", accessmode: "passthrough" |     # /vagrant is not used by vagrant-spk; we need this line so it gets disabled; if we removed the | ||||||
|  |     # line, vagrant would automatically insert a synced folder in /vagrant, which is not what we want. | ||||||
|  |     override.vm.synced_folder "..", "/vagrant", type: "9p", accessmode: "passthrough", disabled: true | ||||||
|   end |   end | ||||||
| end | end | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								.sandstorm/build.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										2
									
								
								.sandstorm/build.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @ -19,7 +19,7 @@ set -euo pipefail | |||||||
| 
 | 
 | ||||||
| # By default, this script does nothing.  You'll have to modify it as | # By default, this script does nothing.  You'll have to modify it as | ||||||
| # appropriate for your application. | # appropriate for your application. | ||||||
| cd /opt/app/hledger | cd /opt/app | ||||||
| stack setup | stack setup | ||||||
| stack install hledger-web | stack install hledger-web | ||||||
| sudo cp /home/vagrant/.local/bin/hledger-web /usr/local/bin | sudo cp /home/vagrant/.local/bin/hledger-web /usr/local/bin | ||||||
|  | |||||||
| @ -1,14 +1,35 @@ | |||||||
| #!/bin/bash | #!/bin/bash | ||||||
| set -euo pipefail | set -euo pipefail | ||||||
|  | 
 | ||||||
|  | # Set options for curl. Since we only want to show errors from these curl commands, we also use | ||||||
|  | # 'cat' to buffer the output; for more information: | ||||||
|  | # https://github.com/sandstorm-io/vagrant-spk/issues/158 | ||||||
|  | 
 | ||||||
|  | CURL_OPTS="--silent --show-error" | ||||||
| echo localhost > /etc/hostname | echo localhost > /etc/hostname | ||||||
| hostname localhost | hostname localhost | ||||||
| curl https://install.sandstorm.io/ > /host-dot-sandstorm/caches/install.sh | 
 | ||||||
| SANDSTORM_CURRENT_VERSION=$(curl -fs "https://install.sandstorm.io/dev?from=0&type=install") | # Install curl that is needed below. | ||||||
|  | apt-get update | ||||||
|  | apt-get install -y curl | ||||||
|  | 
 | ||||||
|  | # The following line copies stderr through stderr to cat without accidentally leaving it in the | ||||||
|  | # output file. Be careful when changing. See: https://github.com/sandstorm-io/vagrant-spk/pull/159 | ||||||
|  | curl $CURL_OPTS https://install.sandstorm.io/ 2>&1 > /host-dot-sandstorm/caches/install.sh | cat | ||||||
|  | 
 | ||||||
|  | SANDSTORM_CURRENT_VERSION=$(curl $CURL_OPTS -f "https://install.sandstorm.io/dev?from=0&type=install") | ||||||
| SANDSTORM_PACKAGE="sandstorm-$SANDSTORM_CURRENT_VERSION.tar.xz" | SANDSTORM_PACKAGE="sandstorm-$SANDSTORM_CURRENT_VERSION.tar.xz" | ||||||
| if [[ ! -f /host-dot-sandstorm/caches/$SANDSTORM_PACKAGE ]] ; then | if [[ ! -f /host-dot-sandstorm/caches/$SANDSTORM_PACKAGE ]] ; then | ||||||
|     curl --output "/host-dot-sandstorm/caches/$SANDSTORM_PACKAGE" "https://dl.sandstorm.io/$SANDSTORM_PACKAGE" |     echo -n "Downloading Sandstorm version ${SANDSTORM_CURRENT_VERSION}..." | ||||||
|  |     curl $CURL_OPTS --output "/host-dot-sandstorm/caches/$SANDSTORM_PACKAGE.partial" "https://dl.sandstorm.io/$SANDSTORM_PACKAGE" 2>&1 | cat | ||||||
|  |     mv "/host-dot-sandstorm/caches/$SANDSTORM_PACKAGE.partial" "/host-dot-sandstorm/caches/$SANDSTORM_PACKAGE" | ||||||
|  |     echo "...done." | ||||||
|  | fi | ||||||
|  | if [ ! -e /opt/sandstorm/latest/sandstorm ] ; then | ||||||
|  |     echo -n "Installing Sandstorm version ${SANDSTORM_CURRENT_VERSION}..." | ||||||
|  |     bash /host-dot-sandstorm/caches/install.sh -d -e "/host-dot-sandstorm/caches/$SANDSTORM_PACKAGE" >/dev/null | ||||||
|  |     echo "...done." | ||||||
| fi | fi | ||||||
| bash /host-dot-sandstorm/caches/install.sh -d -e "/host-dot-sandstorm/caches/$SANDSTORM_PACKAGE" |  | ||||||
| modprobe ip_tables | modprobe ip_tables | ||||||
| # Make the vagrant user part of the sandstorm group so that commands like | # Make the vagrant user part of the sandstorm group so that commands like | ||||||
| # `spk dev` work. | # `spk dev` work. | ||||||
| @ -17,14 +38,11 @@ usermod -a -G 'sandstorm' 'vagrant' | |||||||
| sudo sed --in-place='' \ | sudo sed --in-place='' \ | ||||||
|         --expression='s/^BIND_IP=.*/BIND_IP=0.0.0.0/' \ |         --expression='s/^BIND_IP=.*/BIND_IP=0.0.0.0/' \ | ||||||
|         /opt/sandstorm/sandstorm.conf |         /opt/sandstorm/sandstorm.conf | ||||||
| # TODO: update sandstorm installer script to ask about dev accounts, and | sudo service sandstorm restart | ||||||
| # specify a value for this option in the default config? |  | ||||||
| if ! grep --quiet --no-messages ALLOW_DEV_ACCOUNTS=true /opt/sandstorm/sandstorm.conf ; then |  | ||||||
|     echo "ALLOW_DEV_ACCOUNTS=true" | sudo tee -a /opt/sandstorm/sandstorm.conf |  | ||||||
|     sudo service sandstorm restart |  | ||||||
| fi |  | ||||||
| # Enable apt-cacher-ng proxy to make things faster if one appears to be running on the gateway IP | # Enable apt-cacher-ng proxy to make things faster if one appears to be running on the gateway IP | ||||||
| GATEWAY_IP=$(ip route  | grep ^default  | cut -d ' ' -f 3) | GATEWAY_IP=$(ip route  | grep ^default  | cut -d ' ' -f 3) | ||||||
| if nc -z "$GATEWAY_IP" 3142 ; then | if nc -z "$GATEWAY_IP" 3142 ; then | ||||||
|     echo "Acquire::http::Proxy \"http://$GATEWAY_IP:3142\";" > /etc/apt/apt.conf.d/80httpproxy |     echo "Acquire::http::Proxy \"http://$GATEWAY_IP:3142\";" > /etc/apt/apt.conf.d/80httpproxy | ||||||
| fi | fi | ||||||
|  | # Configure apt to retry fetching things that fail to download. | ||||||
|  | echo "APT::Acquire::Retries \"10\";" > /etc/apt/apt.conf.d/80sandstorm-retry | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user