mirror of
https://github.com/dokku/dokku.git
synced 2025-12-29 08:29:56 +01:00
45 lines
1.5 KiB
Bash
Executable File
45 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
|
source "$PLUGIN_PATH/common/functions"
|
|
|
|
case "$1" in
|
|
enter)
|
|
APP="$2"; CONTAINER_TYPE="$3"; IMAGE_TAG=$(get_running_image_tag $APP); IMAGE=$(get_app_image_name $APP $IMAGE_TAG)
|
|
verify_app_name "$APP"
|
|
|
|
[[ ! -n "$3" ]] && dokku_log_fail "No container id specified"
|
|
|
|
if [[ "$3" == "--container-id" ]]; then
|
|
[[ ! -n "$4" ]] && dokku_log_fail "No container id specified"
|
|
|
|
DOKKU_APP_CIDS=( $(get_app_container_ids "$APP") )
|
|
printf -- '%s\n' "${DOKKU_APP_CIDS[@]}" | grep -q -e "^$4" || dokku_log_fail "Invalid container id for app"
|
|
ID=$(printf -- '%s\n' "${DOKKU_APP_CIDS[@]}" | grep -e "^$4")
|
|
shift 4
|
|
else
|
|
DOKKU_APP_CIDS=( $(get_app_container_ids "$APP" "$CONTAINER_TYPE") )
|
|
ID=${DOKKU_APP_CIDS[0]}
|
|
[[ ! -n $ID ]] && dokku_log_fail "No containers found for type '$CONTAINER_TYPE'"
|
|
shift 3
|
|
fi
|
|
|
|
docker ps -aq --no-trunc | grep -e "^$ID" > /dev/null || dokku_log_fail "Container does not exist"
|
|
docker ps -q --no-trunc | grep -e "^$ID" > /dev/null || dokku_log_fail "Container is not running"
|
|
|
|
EXEC_CMD=""
|
|
is_image_herokuish_based "$IMAGE" && EXEC_CMD="/exec"
|
|
docker exec -it $ID $EXEC_CMD "${@:-/bin/bash}"
|
|
;;
|
|
|
|
help | enter:help)
|
|
cat && cat<<EOF
|
|
enter <app> [<container-type> || --container-id <container-id>], Connect to a specific app container
|
|
EOF
|
|
;;
|
|
|
|
*)
|
|
exit "$DOKKU_NOT_IMPLEMENTED_EXIT"
|
|
;;
|
|
|
|
esac
|