diff --git a/plugins/app-json/functions.go b/plugins/app-json/functions.go index 4422542cb..e393f0133 100644 --- a/plugins/app-json/functions.go +++ b/plugins/app-json/functions.go @@ -230,15 +230,39 @@ func executeScript(appName string, image string, imageTag string, phase string) dockerArgs = append(dockerArgs, words...) } - filteredArgs := []string{"restart", "cpus", "memory", "memory-swap", "memory-reservation", "gpus"} + filteredArgs := []string{ + "--cpus", + "--gpus", + "--memory", + "--memory-reservation", + "--memory-swap", + "--publish", + "--publish-all", + "--restart", + "-p", + "-P", + } for _, filteredArg := range filteredArgs { // re := regexp.MustCompile("--" + filteredArg + "=[0-9A-Za-z!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~]+ ") + skipNext := false var filteredDockerArgs []string for _, dockerArg := range dockerArgs { - if !strings.HasPrefix(dockerArg, "--"+filteredArg+"=") { - filteredDockerArgs = append(filteredDockerArgs, dockerArg) + if skipNext { + skipNext = false + continue } + + if strings.HasPrefix(dockerArg, filteredArg+"=") { + continue + } + + if dockerArg == filteredArg { + skipNext = true + continue + } + + filteredDockerArgs = append(filteredDockerArgs, dockerArg) } dockerArgs = filteredDockerArgs diff --git a/plugins/scheduler-docker-local/pre-deploy b/plugins/scheduler-docker-local/pre-deploy index 69c628a1d..3336bc627 100755 --- a/plugins/scheduler-docker-local/pre-deploy +++ b/plugins/scheduler-docker-local/pre-deploy @@ -36,9 +36,16 @@ scheduler-docker-local-pre-deploy-chown-app() { if [[ -n "$APP_PATHS" ]]; then CONTAINER_PATHS=$(echo "$APP_PATHS" | awk -F ':' '{ print $2 }' | xargs) DOCKER_ARGS=$(: | plugn trigger docker-args-deploy "$APP" "$IMAGE_TAG") - # strip --restart args from DOCKER_ARGS - # shellcheck disable=SC2001 - DOCKER_ARGS=$(sed -e "s/--restart=[[:graph:]]\+[[:blank:]]\?//g" <<<"$DOCKER_ARGS") + + filterdArgs=("--cpus" "--gpus" "--memory" "--memory-reservation" "--memory-swap" "--publish" "--publish-all" "-p" "-P") + for filteredArg in "${filterdArgs[@]}"; do + # shellcheck disable=SC2001 + DOCKER_ARGS=$(sed -e "s/$filteredArg=[[:graph:]]\+[[:blank:]]\?//g" <<<"$DOCKER_ARGS") + + # shellcheck disable=SC2001 + DOCKER_ARGS=$(sed -e "s/$filteredArg\+[[:blank:]][[:graph:]]\+[[:blank:]]\?//g" <<<"$DOCKER_ARGS") + done + eval "ARG_ARRAY=($DOCKER_ARGS)" fi