【发布时间】:2020-08-13 19:52:50
【问题描述】:
我对 Docker 很陌生,我必须构建一个容器,该容器可以运行 Python 脚本,该脚本使用 CSV 文件的行定期向 Azure IoT 中心发送消息。我已经使用 Linux 构建了这个容器,但是由于我的资源限制,我必须使用 Windows 容器重新构建映像。这是我尝试使用的 Dockerfile 的设置:
FROM mcr.microsoft.com/windows/servercore:1809
# Install pip requirements
ADD requirements.txt .
RUN python -m pip install -r requirements.txt
WORKDIR /app
ADD SimulatedDeviceFitbit.py .
WORKDIR /app
COPY sensor_original2.csv .
CMD ["python", "SimulatedDeviceFitbit.py"]
使用 Pip 添加的唯一包是 azure-iot-device 库。 CSV 用于读取将作为消息发送的数据,脚本处理消息的发送。每当我运行图像时,错误:
azure.iot.device.common.transport_exceptions.TlsExchangeAuthError: TlsExchangeAuthError(None) caused by SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)')
脚本中与 IoT 中心的连接如下所示:
client = IoTHubDeviceClient.create_from_connection_string(CONNECTION_STRING)
我通过 Docker 检查了我的网络设备,没有发现任何问题,但显然我遗漏了一些东西。我没有在容器中联网的经验,希望得到任何指导。
【问题讨论】:
标签: python azure docker azure-iot-hub