gpt4 book ai didi

python /docker : How to use python logging module with docker?

转载 作者:行者123 更新时间:2023-11-28 22:12:12 24 4
gpt4 key购买 nike

我有一个简单的设置,在 python 应用程序中设置了 python 的日志记录模块,如下所示:

app_logger = logging.getLogger('main_thread')

file_handler = RotatingFileHandler('/home/pi/FaunderGateway_Log.log', maxBytes=10000000, backupCount=5)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(name)s - %(message)s')
file_handler.setFormatter(formatter)

app_logger.addHandler(file_handler)

我有一个 RotatingFileHandler,它的绝对路径是“/home/pi/FaunderGateway_Log.log”(这个应用程序将在 raspberry pi 上运行,以防有人疑惑),现在我正在尝试使用 docker 将应用程序容器化。

构建并尝试运行我的容器后,出现错误:

[Errno 2] No such file or directory: '/home/pi/FaunderGateway_Log.log'

现在,我知道 docker 在容器中有自己的文件系统,与主机的 (pi) 文件系统分开,但我想告诉 docker 让我的 python 应用程序在主机的文件系统中正常登录绝对路径/home/pi/。 我怎样才能做到这一点?

我读了一些其他提到卷的线程,但我并不是很了解它们。

我正在使用这个命令来运行我的容器:

sudo docker run --privileged fg

--privileged 标志使我可以访问 pi 上的/dev/mem 文件,以进行 GPIO 操作。

更新:请注意,我希望我的 docker 容器在主机路径“/home/pi”中创建日志文件,我不想创建“/home/pi "容器本身内的目录。

最佳答案

卷可以解决问题。容器有它自己的文件系统。使用卷就像将包含文件的笔式驱动器从您的主机连接到 docker 容器。

在您的情况下,您可以这样做:

sudo docker run --privileged fg -v /home/pi:/pi

现在,这将在容器的根目录中创建一个名为 pi 的文件夹,该文件夹链接到主机中的 /home/pi

因此,在您的 Python 应用程序中指定 /pi 作为目录。

Relevant documentation

关于 python /docker : How to use python logging module with docker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55156980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com