Docker entryscriptのexec "$@"

docker の勉強していたらentrypoint.shの最後の行に

exec "$@"

とでてきました。 シェルコマンドなのでDocker特有のものではないですが、Dockerでは標準的に使われてる印象です。

stackoverflow.com

行っていることとしては「コマンドラインで渡されたものを実行して」ってことですね。

ここまで調べて思い出したんですが、シェルスクリプトでは引数受け取るときに$と数字を使いますね。

一つ目の引数$0, 二つ目の引数は$1... といった具合に。これを位置パラメータと呼んだりするようで。

で、@はここでは全部を受け取る役割。

つまりexec "$@" 全体で、コマンドラインの残りを全部受け取って実行してください、ということになると。

docker-compose upとかするときに後ろにコマンドくっつけたのが実行されてるのはここでやってるんだと思います。違ったら訂正します