fix: strip published port flags when triggering deploy tasks

Closes #4664
This commit is contained in:
Jose Diaz-Gonzalez
2021-07-11 20:53:02 -04:00
parent 20f9fae613
commit f9247a9c42
2 changed files with 37 additions and 6 deletions

View File

@@ -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

View File

@@ -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