Назад | Перейти на главную страницу

AWS ECS CannotStartContainerError: ответ от демона об ошибке

Я пытаюсь запустить задачу с контейнером с помощью следующей команды:

/bin/sh -c "export KAFKA_LISTENERS=\"PLAINTEXT://$$(hostname -i):9092\" && start-kafka.sh"

Но я получаю эту ошибку, когда контейнер пытается запуститься, и я понятия не имею, что может ее вызвать:

CannotStartContainerError: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"/bin/sh -c \\\"export KAFKA_LISTENERS=\\\\\\\"PLAINTEXT://$$(hostname -i):9092\\\\\\\" && start-kafka.sh\\

Странно то, что ошибка возникает только в AWS, если я создаю файл компоновки докеров и запускаю его локально, все работает нормально.

Любые идеи?

Спасибо!

После того, как я несколько дней бился головой о стену, я наконец понял это. Кажется, консоль AWS сокращает сообщение об ошибке до 255 символов, поэтому я не видел полного сообщения об ошибке. Дело в том, что при настройке команды для контейнера AWS будет преобразовывать ее в CMD в стиле массива. Так /bin/bash -c "echo hello!" превращается в ["/bin/bash -c \"echo hello!\""], что не работает. Правильный формат будет ["/bin/bash, "-c", "echo hello!"]. Для этого вам просто нужно разделить свою команду запятыми в Консоли AWS, чтобы она стала/bin/bash,-c,echo hello!.