我真的不希望它可以在生产中运行docker-compose down
。永远。有没有办法在zsh中覆盖该命令,否则只会在生产服务器上运行时抛出错误?
我们试图将命令别名为别的东西,但无济于事。
答案 0 :(得分:2)
我希望您出于安全目的不这样做?您可以通过在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二进制文件。