From 8597b692eee6190a22b7c6d13e1de06cc541bb4c Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Mon, 2 May 2016 00:02:37 -0400 Subject: [PATCH] Add the ability to run containers in detached mode --- docs/deployment/one-off-processes.md | 7 +++++++ plugins/00_dokku-standard/subcommands/run | 11 +++++++++-- plugins/common/functions | 3 +++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/docs/deployment/one-off-processes.md b/docs/deployment/one-off-processes.md index 29c24a09e..1ec1dc469 100644 --- a/docs/deployment/one-off-processes.md +++ b/docs/deployment/one-off-processes.md @@ -32,6 +32,13 @@ dokku --rm-container run node-js-app ls -lah dokku --rm run node-js-app ls -lah ``` +Finally, you may wish to run a container in "detached" mode via the `--detach` dokku flag. Note that you may not use the `--rm-container` or `--rm` flags when running containers in detached mode, and attempting to do so will result in the `--detach` flag being ignored. + +```shell +dokku --detach run node-js-app ls -lah +# returns the ID of the new container +``` + ### Using `run` for cron tasks You can always use a one-off container to run an application task: diff --git a/plugins/00_dokku-standard/subcommands/run b/plugins/00_dokku-standard/subcommands/run index ff2ca1588..faebb4754 100755 --- a/plugins/00_dokku-standard/subcommands/run +++ b/plugins/00_dokku-standard/subcommands/run @@ -20,8 +20,15 @@ dokku_run_cmd() { local DOCKER_ARGS=$(: | plugn trigger docker-args-run "$APP" "$IMAGE_TAG") [[ "$DOKKU_TRACE" ]] && local DOCKER_ARGS+=" -e TRACE=true " - [[ "$DOKKU_RM_CONTAINER" ]] && local DOKKU_RUN_OPTS="--rm" - has_tty && local DOKKU_RUN_OPTS+=" -i -t" + + local DOKKU_RUN_OPTS="" + if [[ "$DOKKU_RM_CONTAINER" ]]; then + DOKKU_RUN_OPTS+=" --rm" + elif [[ "$DOKKU_DETACH_CONTAINER" ]]; then + DOKKU_RUN_OPTS+=" --detach" + fi + + has_tty && DOKKU_RUN_OPTS+=" -i -t" is_image_herokuish_based "$IMAGE" && local EXEC_CMD="/exec" # shellcheck disable=SC2086 docker run $DOKKU_GLOBAL_RUN_ARGS $DOKKU_RUN_OPTS $DOCKER_ARGS $IMAGE $EXEC_CMD "$@" diff --git a/plugins/common/functions b/plugins/common/functions index b1ebcee79..9852751d9 100755 --- a/plugins/common/functions +++ b/plugins/common/functions @@ -228,6 +228,9 @@ parse_args() { --quiet) export DOKKU_QUIET_OUTPUT=1 ;; + --detach) + export DOKKU_DETACH_CONTAINER=1 + ;; --trace) export DOKKU_TRACE=1 ;;