'docker-compose down' 可以在生产中以某种方式被阻止 运行 吗?
Can 'docker-compose down' be somehow prevented from running in production?
我真的不希望它能够 运行 docker-compose down
投入生产。曾经。有没有办法在 zsh 中覆盖该命令,否则如果在生产服务器上 运行 只会抛出错误?
我们尝试将命令别名为其他名称,但无济于事。
我希望你这样做不是出于安全目的?您可以控制 docker 组中的 adding/removing 用户可以和不能管理 docker 服务(因此 docker-compose)。
如果你想防止自己不小心运行docker-compose down
,你可以写一个wrapper脚本:
#!/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-compose down
投入生产。曾经。有没有办法在 zsh 中覆盖该命令,否则如果在生产服务器上 运行 只会抛出错误?
我们尝试将命令别名为其他名称,但无济于事。
我希望你这样做不是出于安全目的?您可以控制 docker 组中的 adding/removing 用户可以和不能管理 docker 服务(因此 docker-compose)。
如果你想防止自己不小心运行docker-compose down
,你可以写一个wrapper脚本:
#!/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
.
但是,这不会阻止任何有恶意和必要权限的人直接调用真正的 docker-compose 二进制文件。