清除缓存docker容器的脚本错误

时间:2015-01-30 11:01:12

标签: docker

我需要在我的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发送到shell,它可以工作....为什么?

1 个答案:

答案 0 :(得分:0)

在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