我正在尝试在 Docker 中编译和运行 python 代码。
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"]
运行.sh
#! usr/bin/env bash
timeout --signal=SIGTERM --foreground 500 python3 main.py
exit $?
python代码(使用docker sdk for 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 app
print(container.logs())