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
uwsgistack creates a virtualenv in the/opt/app-venvdirectory and, if arequirements.txtis present, does `pip install -r requirements.txt' into the virtualenv. -
The
meteorstack uses themeteor buildprocess to create a Meteor bundle. -
The
lemp(PHP) stack looks forcomposer.jsonin the app directory and, if present, downloads and runscomposer.pharto download the dependencies listed incomposer.json. -
The
golangstack expects the app directory define themainpackage 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.shto install the appropriate version control system. If your app is composed of multiple packages in one repository, you'll have to set$pkgpathin.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.