Нет соединения с устройством Python в Docker-контейнере - PullRequest
0 голосов
/ 01 октября 2018

В настоящее время я запускаю скрипт на python внутри контейнера докера на машине с Ubuntu.Скрипт обрабатывает ввод с последовательного устройства с помощью pyserial.Каждый раз, когда я запускаю скрипт, у меня нет реального соединения с устройством, он всегда выдает эту ошибку:

serial.serialutil.SerialException: [Errno 16] could not open port /dev/ttyACM3: [Errno 16] Device or resource busy: '/dev/ttyACM3'

Примечание: устройство не используется ни в каком другом процессе, поэтому не должно быть никаких причин длясгенерируйте эту ошибку.

while True:
    try:
        self.serialSource = serial.Serial(self.inputDevice)
        self.serialSource.timeout = 0.5
        break
    except serial.serialutil.SerialException as e:
        print(str(e))
        time.sleep(1)
        continue

Если я запускаю сценарий непосредственно на хост-компьютере, значит, он работает так, как ожидалось.Я думаю, что может быть проблема с конфигурацией докера.

Я просто использую docker-compose для подключения устройства к контейнеру следующим образом:

devices:
  - "/dev/ttyACM3:/dev/ttyACM3"

информация о настройке:

  • host os: ubuntu 18.04
  • docker: 18.06.1-ce, сборка e68fc7a
  • docker-compose: 1.22.0, сборка f46880fe
  • образ докера: "python: 3.7.0"
  • pyserial: 3.4

Есть идеи?

...