清除缓存码头管理员容器的脚本出错



我需要在我的nginx docker容器中手动清除缓存并制作一个脚本,我制作了一个找到PID的脚本:

docker-pid
#!/bin/sh
exec docker inspect --format '{{ .State.Pid }}' "$@"

还有另一个最终剧本

clear_cache.sh
#!/bin/sh
PID=/usr/bin/docker-pid proxy_nginx_1
nsenter -m -p -u -n -i -t $PID
rm -rf /etc/nginx/cache/*
exit

我收到此错误:

./clear_cache.sh: line 2: proxy_nginx_1: command not found

如果我启动docker-pid壳,它可以工作....为什么?

在 bash 中,如果要将命令的输出保存到变量中,则必须使用 $(<COMMAND>)。所以

clear_cache.sh


#!/bin/sh
PID=$(/usr/bin/docker-pid proxy_nginx_1)
nsenter -m -p -u -n -i -t $PID
rm -rf /etc/nginx/cache/*
exit

#!/bin/sh
PID=$(docker inspect --format '{{ .State.Pid }}' "$@")
nsenter -m -p -u -n -i -t $PID
rm -rf /etc/nginx/cache/*
exit

最新更新