Скрипт Python в контейнере Docker Attach_Socket отправляется не в отдельной строке

Я пытаюсь скомпилировать и запустить код Python в Docker.

Dockerfile

      FROM python:3
WORKDIR /app
USER root
ADD . .
RUN chmod a+x ./main.py
RUN chmod a+x ./run.sh
ENTRYPOINT ["sh","./run.sh"]

run.sh

      #! usr/bin/env bash
timeout --signal=SIGTERM --foreground 500 python3 main.py
exit $?

код python (с использованием docker sdk для python):

      client = docker.from_env()

client.images.build(path="./Dockerimagefolder/",tag="sample322")

container = client.containers.create(image="sample322", stdin_open = True)
container.start()
time.sleep(5)
s = container.attach_socket(params={'stdin': 1, 'stream': 1})
s.send('test'.encode())

журнал контейнера:

      Begin script

Enter your nameyou entered

test

как вы можете видеть, «вы ввели» не отображается в следующей строке, вместо этого оно помещается в ту же строку, что и ввод. Он также не показывает ввод, который был отправлен, т.е. test

Я также не могу получить вывод, журнал, который я показал выше, взят из приложения Docker.

      print(container.logs())

0 ответов

Другие вопросы по тегам