По какой-то причине я не могу получить доступ к сети моего хост-компьютера для моего док-контейнера.В частности, я пытаюсь вызвать интерфейс CAN sudo slcand -o -c -s0 /dev/ttyACM0 can0
.Проблема в этом.Я могу запустить его на своем хост-компьютере, однако, когда я запускаю свой контейнер, он не может найти устройство.Однако мой хост-компьютер не должен вызывать интерфейс, так как в моем док-контейнере у меня есть скрипт bash, который будет иметь дело с вызовом интерфейса can0
.
РЕДАКТИРОВАТЬ: Если это имеет значение, я пытаюсь сделать это на Raspberry Pi.
Я использую эту команду для запуска моего контейнера:
docker run -t -i --device=/dev/ttyACM0
Затем у меня есть скрипт bash, который работает с интерфейсом can0.Однако, когда я выполняю команду run, я распечатываю ifconfig
в моем скрипте bash, и не появляются интерфейсы can0
или wlan0
.
Поскольку скрипт bash пытается вызвать can0
интерфейс, он выходит из строя и выдает мне эту ошибку:
OSError: [Errno 19] No such device
Понятия не имею, что я делаю неправильно.Кто-нибудь еще сталкивался с этим вопросом?Вот как выглядит мой файл Docker:
FROM ubuntu:latest
COPY requirements.txt /
RUN apt-get update
RUN apt-get install -y python3-pip
RUN pip3 install -r requirements.txt
RUN apt-get install -y can-utils
RUN apt-get install -y net-tools
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
USER docker
COPY ./ /generator-data-tools
WORKDIR /generator-data-tools
ENTRYPOINT ["/bin/bash"]
CMD ["/generator-data-tools/start_streaming.sh"]
И мой сценарий bash:
#!/bin/bash
echo "Configuring CAN network"
ls /dev/data-streaming
slcand -o -c -s0 /dev/ttyACM0
ifconfig; ifconfig can0 up
echo "Starting to stream data"
python3 ./streaming_integration_test.py
Спасибо всем, кто ответил заранее.