ENTRYPOINTとCMDは、Dockerfileでコンテナ実行時にコマンド定義するために使用します
-
ENTRYPOINT
ENTRYPOINTは、コンテナが実行される際にデフォルトで実行されるコマンドを指定します。ENTRYPOINTで指定されたコマンドは、コンテナ実行時に上書きすることができますが、通常はコンテナのメインプロセスやアプリケーションの実行に使用する -
CMD
CMDは、コンテナが実行される際にENTRYPOINTに渡すデフォルトの引数を指定する
- ENTRYPOINTはコンテナのメインコマンドを定義し、CMDはそのコマンドに対するデフォルトの引数を定義する
ENTRYPOINT ["/app/myapp"]
CMD ["--help"]
↓
/app/myapp --help
- TIPS
- ECSタスク定義では、ENTRYPOINTとCMDを組み合わせることができないので、commandを使用してENTRYPOINTとCMDを組み合わせて制御します。
cloudwatch_event_targe.tf
resource "aws_cloudwatch_event_target" "example" {
for_each = local.example
# ...
input = jsonencode({
containerOverrides = [
{
name = "example",
command = each.value.example
}
]
})
locals.tf
locals {
example = {
# ...
container_overrides = [
{
name = "example"
command = ["/app/myapp", "--help"] // ["entrypoint_command", "cmd_argument_1"]
}
]
}