У меня есть простая установка с модулем журналирования 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 таков, что я могу получить доступ к файлу / dev / mem на pi для операций GPIO.
Обновление: обратите внимание, что я хочу, чтобы мой докер-контейнер создавал файл журнала по пути хоста "/ home / pi" , я не хочу создавать "/ home / pi" каталог внутри самого контейнера.