防止 Makefile 命令在退出 Docker 容器后打印错误

Prevent Makefile command to print error after exiting a Docker container

考虑以下 Makefile

bash:
    docker run -it --rm bash:4.4

当我 运行 Makefile 命令附加到 Docker 容器时,在控制台上创建一个错误并退出,我得到一个“make: *** [bash ] 错误 127":

➜ make bash
docker run -it --rm bash:4.4
bash-4.4# peng
bash: peng: command not found
bash-4.4# exit
exit
make: *** [bash] Error 127

当我在没有 Makefile 上下文的情况下简单地 运行 相同的命令时 - 没有错误。

有什么方法可以防止在退出 Docker 容器后打印此错误?这是一个最小的示例 - 我们想在开发设置中将 Makefile 用于 运行ning Docker 相关任务。

制作将 运行 您在 shell 中提供的食谱。如果 shell 以非 0 错误代码退出,make 认为操作失败并打印该消息。所以,你所要做的就是确保配方不会失败。例如:

bash:
        docker run -it --rm bash:4.4 || true

现在,如果 docker 命令以非 0 代码退出,则 || true 将是 运行 并以成功代码退出。

或者,您可以在食谱前加上 -,这仍然会打印一条消息,但 make 会忽略错误:

bash:
        -docker run -it --rm bash:4.4

请注意,如果您这样做,您将无法通知 make 您尝试 运行 的命令没有成功。