Devstep's CLI has a configuration mechanism in the form of YAML files that can be used to customize its behavior globally or for a specific project.
The available options are described below:
# The Docker repository to keep images built by devstep
# DEFAULT: 'devstep/<CURRENT_DIR_NAME>'
repository: 'repo/name'
# The image used by devstep when building environments from scratch
# DEFAULT: 'fgrehm/devstep:v0.4.0'
source_image: 'source/image:tag'
# The host cache dir that gets mounted inside the container at `/home/devstep/cache`
# for speeding up the dependencies installation process.
# DEFAULT: '/tmp/devstep/cache'
cache_dir: '{{env "HOME"}}/devstep/cache'
# The directory where project sources should be mounted inside the container.
# DEFAULT: '/workspace'
working_dir: '/home/devstep/gocode/src/github.com/fgrehm/devstep-cli'
# Link to other existing containers (like a database for example).
# Please note that devstep won't start the associated containers automatically
# and an error will be raised in case the linked container does not exist or
# if it is not running.
# DEFAULT: <empty>
links:
- "postgres:db"
- "memcached:mc"
# Additional Docker volumes to share with the container.
# DEFAULT: <empty>
volumes:
- "/path/on/host:/path/on/guest"
# Environment variables.
# DEFAULT: <empty>
environment:
RAILS_ENV: "development"
# Custom command aliases that can be used with `devstep run` to save some
# typing. It is also used for generating project specific binstubs.
# DEFAULT: <empty>
commands:
# This can be run with `devstep run server`
server:
cmd: ["rails", "server"]
# Here you can use some of the configs described above
publish: ["3000:3000"]
volumes:
- '{{env "HOME"}}/certs/some-certificate.crt:/home/devstep/some-certificate.crt'
- '{{env "HOME"}}/projects/some-gem-sources:/home/devstep/some-gem-sources'
links:
- 'redis:redis'
environment:
RAILS_ENV: "hacking"
ruby:
# No custom options, used only for generating binstubs
# Custom provisioning steps that can be used when the available buildpacks are not
# enough. Use it to configure addons or run additional commands during the build.
# DEFAULT: <empty>
provision:
- ['configure-addons', 'redis']
During a devstep
command run, the CLI will start by loading global config
options from $HOME/devstep.yml
and project specific options from a devstep.yml
file located on the directory where the command is run and will merge them before
creating containers.
To figure out what are the configured values for a specific project after
merging settings you can run devstep info
.