Я создал собственный образ докера из python: 3.6 с awscli и менеджером сессий:
FROM python:3.6 WORKDIR /app RUN pip3 install -U awscli RUN apt-get update -y && \ apt-get install groff less curl -y && \ curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" -o "session-manager-plugin.deb" && \ dpkg -i session-manager-plugin.deb && \ rm -f session-manager-plugin.deb RUN curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" -o "session-manager-plugin.deb" && \ dpkg -i session-manager-plugin.deb && \ rm -f session-manager-plugin.deb ENTRYPOINT ["aws"]
Я создал пользовательский исполняемый файл в /usr/bin/aws:
/usr/bin/aws
#!/bin/bash docker run --rm -v "$(pwd)":"/app" -v "/root/.aws/":"/root/.aws" python-aws "$@"
Когда я запускаю aws ssm start-session --target i-***, вывод:
aws ssm start-session --target i-***
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ...
Знаете, как решить проблему?
Только что найденное решение будет писать вопрос.
Я добавил -it (интерактивно) к команде docker run.
-it
docker run
Итак, команда теперь:
#!/bin/bash docker run -it --rm -v "$(pwd)":"/app" -v "/root/.aws/":"/root/.aws" python-aws "$@"
Проблема решена.