Я пытаюсь запустить задачу с контейнером с помощью следующей команды:
/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!
.