我正在尝试调试我的应用程序,我需要查看我的后端服务的日志。我用conda run运行它,配置如下:
# Partir de l’image officielle de Python 3.7
FROM continuumio/miniconda3
EXPOSE 50051
# Mettre le code de l’application dans le répertoire / de l’image
WORKDIR /
# Copier les librairie nécessaire à votre application
ADD prod-env.yml /
# Installer les packages Python nécessaires dans requirements.txt
RUN conda env create -f prod-env.yml --prefix ./env
# Copier le code de l’application dans le répertoire /
ADD src /src
ENV PYTHONUNBUFFERED=1
# Lancer le script app.py quand le container démarre
CMD ["conda","run", "--no-capture-output", "-v", "-v" ,"-p", "./env", "python", "-u", "-m", "src.main"]
我知道kubernetes部署是成功的,因为我能够发送一些请求并获得响应,但我正在尝试调试一个边缘情况,我需要日志。命令kubectl logs backend-xxxxxxxx
不返回任何值
奇怪的是,当我尝试直接运行容器时,我得到了预期的输出
docker run --platform linux/amd64 865959cfcf1c
DEBUG conda.gateways.logging:set_verbosity(246): verbosity set to 2
DEBUG conda.gateways.subprocess:subprocess_call(85): executing>> /bin/bash /tmp/tmpxsyy9ay5
WARNING: overwriting environment variables set in the machine
overwriting variable PYTHONUNBUFFERED
Server started, listening on 50051
当容器部署在kubernetes上时,我如何获得输出?
我通过在日志配置中指定使用stdout而不是stderr使其工作。这很奇怪,因为文档指定标准错误和标准输出都应该被记录。