[英]How to access USB ports from Docker Container on Mac OS
我創建了一個 Docker 容器來構建和測試我的Flutter應用程序。 我想將我的移動設備連接到我的 Macbook 的 USB 端口,並從 Docker 容器直接在設備上運行 Flutter 應用程序。 但是,我無法從容器訪問 USB 端口並收到此錯誤。
我在 VS Code 中使用遠程開發擴展來運行容器。
devcontainer.json
文件附在下面:
{
"name": "flutter_docker",
"context": "..",
"dockerFile": "../Dockerfile",
"remoteUser": "developer",
"mounts": [
"source=/dev/bus/usb,target=/dev/bus/usb,type=bind"
],
"settings": {
"terminal.integrated.shell.linux": null
},
"runArgs": ["--privileged"],
"extensions": ["dart-code.flutter"],
"workspaceMount": "source=${localWorkspaceFolder}/workspace,target=/home/developer/workspace,type=bind,consistency=delegated",
"workspaceFolder": "/home/developer/workspace"
}
每當我從json文件中刪除mounts
,它運行良好,沒有任何錯誤。
刪除此行:
"mounts": [
"source=/dev/bus/usb,target=/dev/bus/usb,type=bind"
],
Dockerfile:
FROM ubuntu:18.04
# Prerequisites
RUN apt update && apt install -y curl git unzip xz-utils zip libglu1-mesa openjdk-8-jdk wget
# Setup new user
RUN useradd -ms /bin/bash developer
USER developer
WORKDIR /home/developer
# Prepare Android directories and system variables
RUN mkdir -p Android/Sdk
ENV ANDROID_SDK_ROOT /home/developer/Android/Sdk
RUN mkdir -p .android && touch .android/repositories.cfg
# Setup Android SDK
RUN wget -O sdk-tools.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
RUN unzip sdk-tools.zip && rm sdk-tools.zip
RUN mv tools Android/Sdk/tools
RUN cd Android/Sdk/tools/bin && yes | ./sdkmanager --licenses
RUN cd Android/Sdk/tools/bin && ./sdkmanager "build-tools;29.0.2" "patcher;v4" "platform-tools" "platforms;android-29" "sources;android-29"
# Download Flutter SDK
RUN git clone https://github.com/flutter/flutter.git
ENV PATH "$PATH:/home/developer/flutter/bin"
# Run basic check to download Dark SDK
RUN flutter doctor
目前, GitHub 中有一個關於 USB Passthrough 的公開錯誤。 在Docker 常見問題解答中還提到無法通過 USB 設備:
不幸的是,不可能通過 USB 設備(或串行端口)傳遞到容器,因為它需要管理程序級別的支持。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.