我真的不希望在生产中运行docker-compose down
。曾经有没有办法在zsh中覆盖该命令,否则,如果在生产服务器上运行该命令只会抛出错误?
我们尝试将命令别名为其他名称,但无济于事。
最佳答案
我希望您不是出于安全目的这样做吗?您可以通过在docker用户组中添加/删除服务来控制哪些用户可以管理docker服务(以及不能管理docker服务)(从而可以管理docker-compose)。
如果要防止自己意外运行docker down
,可以编写包装器脚本:
#!/bin/bash
for arg in "$@";do
if [[ "$arg" = "down" ]];then
>&2 echo "ERROR: 'docker-compose down' has been disabled!"
exit 1
fi
done
/usr/local/bin/docker-compose "$@" # Adapt to actual path to docker-compose binary if different
将其作为
docker-compose
放在$PATH
的早期位置,例如$HOME/bin/docker-compose
并使其可执行。如果命令行包含down
,它将退出并向STDERR警告。但是,这不会阻止任何有恶意意图和必要权限的人直接调用真正的docker-compose二进制文件。
关于docker - 可以以某种方式阻止 'docker-compose down'在生产中运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38456917/