Мы используем Terraform для динамического развертывания контейнера AWS ECS / Fargate для запуска приложения Spring Boot, и есть требование передать в приложение несколько аргументов командной строки. Доступная документация, кажется, предполагает, что правильный способ сделать это - определить «командный» блок в определении контейнера Terraform JSON и указать там один или несколько аргументов. Вот мое текущее определение контейнера:
[{
"name": "${environment}-${app_name}",
"image": "${app_image}",
"cpu": ${fargate_cpu},
"memory": ${fargate_memory},
"networkMode": "awsvpc",
"command": [
"--server.port",
"${app_port}"
],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "${environment}-${app_name}",
"awslogs-region": "${aws_region}",
"awslogs-stream-prefix": "ecs"
}
},
"portMappings": [
{
"containerPort": ${app_port},
"hostPort": ${app_port}
}
]}]
Вы заметите, что я определил командный блок с аргументом - server.port и установил его значение переменной app_port. Однако при развертывании этот аргумент не подбирается приложением Spring Boot, работающим внутри контейнера, и вместо него используется порт по умолчанию.
Мой вопрос прост: как следует go указать аргументы командной строки для приложений, работающих внутри контейнеров Fargate?