telus-agcg / nib

A Docker Compose wrapper geared towards Ruby/Rails development with a focus on: convention, convenience and productivity.
MIT License
15 stars 3 forks source link

Support passing through flags for exec/run #93

Closed johnallen3d closed 8 years ago

johnallen3d commented 8 years ago

Prior to this implementation something like the following was not possible:

nib run -e RAILS_ENV=production web puma

These changes add support for accepting the remaining options (flags) for the exec and run commands specifically.

Help output for exec and run now looks like this:

❯ nibdev exec --help
NAME
    exec - Attach an interactive shell session to a running container

SYNOPSIS
    nib [global options] exec [command options] service [command][, [command]]*

COMMAND OPTIONS
    -T            - Disable pseudo-tty allocation. By default `docker-compose run` allocates a TTY.
    -d            - Detached mode: Run container in the background, print new container name.
    --index=index - index of the container if there are multiple instances of a service [default: 1] (default: none)
    --privileged  - Give extended privileges to the process.
    -u, --user="" - Run as specified username or uid (default: none)
❯ nibdev run --help
NAME
    run - Wraps normal 'docker-compose run' to ensure that --rm is always passed

SYNOPSIS
    nib [global options] run [command options] service [command][, [command]]*

COMMAND OPTIONS
    -T               - Disable pseudo-tty allocation. By default `docker-compose run` allocates a TTY.
    -d               - Detached mode: Run container in the background, print new container name.
    -e KEY=VAL       - Set an environment variable (may be used more than once, default: none)
    --entrypoint=CMD - Override the entrypoint of the image. (default: none)
    --name=NAME      - Assign a name to the container (default: none)
    --no-deps        - Don’t start linked services.
    -p, --publish=[] - Publish a container’s port(s) to the host (default: none)
    --service-ports  - Run command with the service’s ports enabled and mapped to the host
    -u, --user=""    - Run as specified username or uid (default: none)
    --workdir=""     - Working directory inside the container (default: none)
blankenshipz commented 8 years ago

This LGTM :shipit: