diff --git a/ops/evo-deploy/deploy.sh b/ops/evo-deploy/deploy.sh index ba34854..4762c8b 100755 --- a/ops/evo-deploy/deploy.sh +++ b/ops/evo-deploy/deploy.sh @@ -496,7 +496,7 @@ refresh_supervisor_container() { return 0 fi - local work image network restart retries line + local work image network restart retries line target work="$(mktemp -d)" image="$(docker container inspect -f '{{.Config.Image}}' "$name")" network="$(docker container inspect -f '{{.HostConfig.NetworkMode}}' "$name")" @@ -509,8 +509,11 @@ refresh_supervisor_container() { elif [[ -n "$restart" && "$restart" != no ]]; then args+=(--restart "$restart") fi + # A bind mount over the image's /app would shadow the freshly built sources, so it is not carried over. while IFS= read -r line; do - [[ -n "$line" ]] && args+=(-v "$line") + target="${line%:ro}" + target="${target##*:}" + [[ -n "$line" && "$target" != /app && "$target" != /app/* ]] && args+=(-v "$line") done < <(docker container inspect -f \ '{{range .Mounts}}{{if eq .Type "volume"}}{{.Name}}{{else}}{{.Source}}{{end}}:{{.Destination}}{{if not .RW}}:ro{{end}}{{"\n"}}{{end}}' "$name") while IFS= read -r line; do diff --git a/packages/testkit/src/evo-deploy.test.ts b/packages/testkit/src/evo-deploy.test.ts index c886657..d2eae4c 100644 --- a/packages/testkit/src/evo-deploy.test.ts +++ b/packages/testkit/src/evo-deploy.test.ts @@ -212,7 +212,7 @@ if [[ "$1 $2" == "container inspect" ]]; then *NetworkMode*) echo host ;; *RestartPolicy.Name*) echo unless-stopped ;; *MaximumRetryCount*) echo 0 ;; - *Mounts*) printf '/srv/data:/srv/data\\n/var/run/docker.sock:/var/run/docker.sock\\n' ;; + *Mounts*) printf '/srv/data:/srv/data\\n/var/run/docker.sock:/var/run/docker.sock\\n/srv/old-src:/app/infra/sandboxes/supervisor/src\\n' ;; *Config.Env*) printf 'DATA_DIR=/srv/data\\nPATH=/usr/bin\\nSUPERVISOR_PORT=7091\\n' ;; esac exit 0