首页 > 解决方案 > 通过子进程运行java应用程序时如何在k8s容器中打印python语句

问题描述

我尝试将标准输出、标准输入设为 None 以及 subprocess.STDOUT。我的容器日志仍然显示 app.jar 的日志。我希望容器显示打印语句和应用程序日志。完全禁用日志会使容器不打印任何日志。我不想让查看者的应用程序日志使我的容器混乱,但想显示当前执行的位置

**code.py**
pro = subprocess.Popen(
    ['/bin/java', '-jar', '/apps/ZAP_2.10.0/app.jar',
     '-daemon', '-host', 'localhost', '-port', '8080', '-dir', '', '-silent', '-config', 'api.key=ZAP',
     '-config', 'api.addrs.addr.regex=true', '-config', 'connection.timeoutInSecs=300'], shell=False,
    stdin=None, stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT, close_fds=True)


print("App is running!")

码头工人文件:

RUN wget app.zip &&
       unzip app.zip \
       rm -f app.zip
CMD ["/bin/bash", "script.sh"]

我的 script.sh 文件:

#!/bin/bash`
source venv/bin/activate`
python code.py

我的 code.py 有我在问题中提到的内容。我将其部署为“部署”配置。

标签: pythondockerkubernetesdockerfilesubprocess

解决方案


推荐阅读