为docker entypoint脚本设置-e和exec“$ @”是做什么的?

我注意到docker的许多entrypoint.sh脚本都是这样的:

#!/bin/bash set -e ... code ... exec "$@" 

什么是set -eexec "$@"为?

它基本上把所有的额外的命令行参数,并把它们作为一个命令。 目的基本上是“在这个.sh脚本中做所有事情,然后在同一个shell中运行用户通过命令行传递的命令”。

看到:

  • 什么是特殊的美元符号shellvariables?
  • 需要解释Linux bash内buildexec命令的行为

set -e – 退出脚本,如果任何命令失败(非零值)

exec "$@" – 将redirectinputvariables, 在这里看到更多