【发布时间】:2019-06-08 20:30:34
【问题描述】:
我有下一个 Dockerfile:
FROM ubuntu:16.04
ENV PYTHONIOENCODING=UTF-8
ENV PYTHONUNBUFFERED=1
ADD . /src
WORKDIR /src
ENTRYPOINT ["python3"]
CMD ["-u", "bot.py"]
此 dockerfile 与 docker-compose 一起使用:
version: '3'
services:
something:
build: .
networks:
- proxy
volumes:
- E:\tmp:/src/tmp
ports:
- "6881-6889:6881-6889/udp"
- "6881-6889:6881-6889/tcp"
- "6891:6891/udp"
- "6891:6891/tcp"
- "6771:6771/udp"
- "6771:6771/tcp"
- "4433-4434:4433-4434/udp"
- "4433-4434:4433-4434/tcp"
tor:
image: "dperson/torproxy"
networks:
- proxy
networks:
proxy:
driver: bridge
我在 Windows 10 上使用 docker "Version 2.0.0.0-win81 (29211) Channel: stable Build: 4271b9e" 运行它:"docker-compose up -d"
在这个 python 脚本中有很多日志记录到标准输出。此时我正在使用如下代码打印所有内容:"print("Exception: " + str(exp), flush=True)"
而且我几乎每次都无法获得使用“docker logs”打印的任何内容。有时我有部分输出(按正确的顺序)。主要是我什么都没有。为什么?
python 3.5.2
附: 抱歉,冲洗所有内容只是我的尝试,而不是规则。
【问题讨论】:
-
可以看到
bot.py的内容吗?根据您的描述,这似乎可能是一个并发问题。
标签: python docker logging stdout flush