我使用以下链接安装了 IOT Edge 运行时:
https ://docs.microsoft.com/en-us/azure/iot-edge/how-to-install-iot-edge-linux-arm
我正在按照以下教程将 docker 映像部署到 IOT Edge (Rasberry Pi):
https
:
//docs.microsoft.com/en-us/azure/iot-edge/quickstart-linux 并能够将 tempSensor 映像部署到我的树莓派
我决定部署我自己的程序“blink.py”。
我使用以下命令在本地 Rasberry Pi 中创建了该程序及其工作正常:
$docker container run --device /dev/gpiomem -d blink
我按照以下步骤从 Azure IOT Edge 门户部署我自己的程序:
1.) 使用 Dockerfile 创建一个 docker 映像:
FROM arm32v7/python:2.7.15-stretch
COPY blink.py
CMD ["python","./blink.py"]
然后运行命令:
$docker build -t "blink" ./
2.) 现在我将图像推送到 Azure 容器注册表。遵循以下步骤:
a.) 登录 Azure 容器注册表
$docker login blink.azurecr.io
b.) 推送到 Azure 容器注册表
$docker tag blink link.azurecr.io/blink
$docker push blink.azurecr.io/blink
3.) 使用以下链接将 Azure 容器注册表中的映像部署到 IOT Edge 设备:
https ://docs.microsoft.com/en-us/azure/iot-edge/quickstart-linux#deploy-a-module
我看到在 Raspberry Pi 中创建的容器映像为“blink.azurecr.io/blink”。
我看到 IOTEdge 运行时尝试将此映像部署为容器,但失败了。
当我尝试使用命令查看日志时
>docker logs blink
它显示一个错误:
Traceback (most recent call last):
File "./blink.py", line 6, in <module>
GPIO.setup(4,GPIO.OUT)
RuntimeError: No access to /dev/mem. Try running as root!
似乎是一些访问问题,但不知道如何解决?从 azure 门户部署边缘模块时,我是否需要在 createOptions 中添加任何内容?
-沙