Code dependencies
Many web apps need access to libraries via language-specific package
managers like pip
, npm
, and so on.
Supported by the platform stack
If you are using a "platform stack" that has built-in support for
downloading dependencies, like the Meteor stack or the Python stack,
then you can expect vagrant-spk
to handle downloading and installing
these dependencies for you. Specifically:
-
The
uwsgi
stack creates a virtualenv in the/opt/app-venv
directory and, if arequirements.txt
is present, does `pip install -r requirements.txt' into the virtualenv. -
The
meteor
stack uses themeteor build
process to create a Meteor bundle. -
The
lemp
(PHP) stack looks forcomposer.json
in the app directory and, if present, downloads and runscomposer.phar
to download the dependencies listed incomposer.json
. -
The
golang
stack expects the app directory define themain
package for your program. It will pull in dependencies withgo get
. If you need to pull in dependencies versioned with tools other than git, you'll have to modify.sandstorm/setup.sh
to install the appropriate version control system. If your app is composed of multiple packages in one repository, you'll have to set$pkgpath
in.sandstorm/build.sh
; see the comments in that file for details.
Beyond the platform stack
If you need to install extra Debian packages, such as PHP extensions
or headers like libxml2-dev
, you can add commands to your package's
build.sh.
If you are creating your own platform stack, based on the DIY stack,
you will likely also need to customize build.sh
.