'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 二进制文件。