Helps your development process with Docker Compose by asking nicely :)
Install
On macOS, install it via Homebrew:
brew tap icalialabs/formulae
brew install plis
On other systems you can:
Download the executable for your system from the
Releases Page
Place it on any of the paths reachable in $PATH
Special behaviors:
plis start [services-optional]: Starts a docker-compose project, with the following extra functionality:
If some or all of the requested project's containers are missing, issues a docker-compose up -d command.
If all of the requested project's containers are present, issues a docker-compose start command.
plis attach [service_name]: It figures out the given service's container, and attaches the console to it.
plis run [service_name] [command]: It runs the given command:
If there's a running container for the given service, it executes it issuing a docker exec -ti command.
If there are no running containers for the given service, it executes it issuing a docker-compose run --rm command.
# Start a docker-compose project:
plis start
# Restart a service:
plis restart web
# Attach the console to a service:
plis attach web
# Run a command on an existing or new container:
plis run web rails c
# Stop a service:
plis stop web
TODO's:
build command to invoke the docker-compose build command.
Split up the big plis.go file.
check context command to list the files that will pass to the Docker build context.
start command with just one service should attach to the container immediately. (i.e.: plis start web starts a rails web container and attaches to it, mimicking the behavior of running rails server on the host)
Change the run command to use docker-compose exec instead of docker exec whenever a running container is already available.
Copy (from existing templates/examples) or generate blank dotenv files referenced in the Compose file.
Install Docker (for Mac/Windows or native for Linux) if it is missing.
Make plis start github.com/some_org/some_dockerized_app clone the project and run it.
upgrade command that upgrades plis to the newest version.