Use*_*727 5 docker docker-compose
我有一个树莓派,并且在其中安装了docker。我制作了一个 python 脚本来读取其中的 gpio 状态。所以当我运行以下命令时
sudo docker run -it --device /dev/gpiomem app-image
Run Code Online (Sandbox Code Playgroud)
它运行完美并显示 gpio 状态。现在我已经创建了一个docker-compose.yml文件,因为我想部署它app.py到我创建的 swarm 集群中。
下面是内容docker-compose.yml
version: "3"
services:
app:
image: app-image
deploy:
mode: global
restart: always
privileged: true
Run Code Online (Sandbox Code Playgroud)
当我使用命令开始部署时sudo docker stack deploy,映像已部署,但出现错误:
No access to /dev/mem. Try running as root
Run Code Online (Sandbox Code Playgroud)
所以它说它没有访问权限/dev/mem,但是当我使用时这很奇怪device,为什么该服务没有访问权限。它还说尝试以 root 身份运行,我认为所有容器都已经在 root 中了。我还尝试通过包含命令来授予该文件的完全权限chmod 777 /dev/gpiomem我还尝试通过在代码中
我的主要问题是,当它使用命令正常运行时,为什么在使用 . 部署时在文件docker run..中显示错误?如何解决这个问题。?docker-composesudo docker stack deploy
谢谢
注意:当使用(版本 3)Compose 文件以 swarm 模式部署堆栈时,此选项将被忽略。
devices 选项在 swarm 中被忽略。您可以使用privileged: true它将访问所有设备。
| 归档时间: |
|
| 查看次数: |
4873 次 |
| 最近记录: |