Project

appd

0.0
No commit activity in last 3 years
No release in over 3 years
Docker compose wrapper for managing containers.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 1.11
~> 10.0
~> 3.0

Runtime

~> 0.19
 Project Readme

Appd

Docker compose wrapper to manage multiple apps.

Appd uses direnv to execute docker-compose commands in isolation while using the app's own environment.

Installation

Install direnv if you haven't already.

Add this line to your application's Gemfile:

gem 'appd'

And then execute:

$ bundle

Or install it yourself as:

$ gem install appd

Usage

# Setup $APPS_PATH
export APPS_PATH /path/to/your/apps

# See help
appd help
Usage:
  appd APPNAME command [OPTIONS]

Options:
  -p                           # Override $APPS_PATH
  -e                           # Specify an ENV file to use
  -f                           # Specify a docker-compose.yml file relative to the app
                               #   (defaults to: "docker-compose.yml")
  -s                           # Specify a docker server env file

Commands:
  help                         # Show this help
  select                       # Select a Docker Server ENV file to use
  env                          # Select an ENV file to use
  ps                           # List containers
  build SERVICES               # Build or rebuild services
  up SERVICES                  # Create and start services
  stop SERVICES                # Stop services
  restart SERVICES             # Restart services
  exec SERVICE -c "COMMAND"    # Execute a command in a running container

Notes: Appd looks for apps in the $APPS_PATH directory.
       APPNAME can be . for current app.
       The currently selected ENV file is stored in ~/.appd/current-env
       The currently selected Docker Server ENV file is stored in ~/.appd/current-server

ENV files

ENV files are stored in ~/.appd/envs/ and these files setup any environment variables you want used when Appd executes commands.

ENV file:

export APPS_PATH=/path/to/your/apps
export MY_ENV_VAR="Hello World!"

Docker Server ENV Files

Docker server env files are stored in ~/.appd/servers/ and these files setup the current environment with the correct environment variables for connecting to docker. You can either specify the variables manually or execute the appropriate docker-machine command.

Manual ENV

Usage:

appd my-app ps -s manual

ENV file:

# ~/.appd/servers/manual
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://127.0.0.1:2376"
export DOCKER_CERT_PATH="/your/path/to/cert"
unset  DOCKER_MACHINE_NAME

Docker Machine ENV

Usage:

appd my-app ps -s docker-machine

ENV file:

# ~/.appd/servers/docker-machine
eval "$(docker-machine env my-docker-machine)"

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/MorganShowman/appd. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The gem is available as open source under the terms of the MIT License.