docker 中的 AWS Session Manager 输出 ^@ 无限期

AWS Session Manager in docker output ^@ indefinitely

我使用 awscli 和会话管理器从 python:3.6 构建了自定义 docker 图像:

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 下创建了一个自定义可执行文件:

#!/bin/bash

docker run --rm -v "$(pwd)":"/app" -v "/root/.aws/":"/root/.aws" python-aws "$@"

当我 运行 aws ssm start-session --target i-*** 输出是:

^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
...

你知道如何解决这个问题吗?

刚刚找到解决方案将写出问题。

我在 docker run 命令中添加了 -it(交互式)。

所以命令现在是:

#!/bin/bash

docker run -it --rm -v "$(pwd)":"/app" -v "/root/.aws/":"/root/.aws" python-aws "$@"

问题已解决。