簡體   English   中英

從容器連接到 Atlas mongoDB 的超時錯誤

[英]Timeout error connecting to Atlas mongoDB from a container

當我在沒有容器的本地運行它時,我的應用程序可以連接到我的 Atlas mongodb。

當我將應用程序放入容器時,我無法訪問 Atlas mongodb。

我已將所有 IP 列入白名單。

        self.myclient = pymongo.MongoClient(mongodb+srv://admin:<password>@mongodbscrapperconf-lctzq.gcp.mongodb.net/test?retryWrites=true&w=majority&ssl=true&authSource=admin)

我已經嘗試使用我的容器連接到本地的 Atlas 數據庫並在 GCP 中運行我的容器。 在這兩種情況下,我都收到來自 mongoDB 的超時錯誤。

我的 DockerFile 看起來像

FROM python:3.7
COPY . /app
WORKDIR /app
RUN apt-get update && apt-get install ca-certificates && rm -rf /var/cache/apk/*
COPY ./host.crt /usr/local/share/ca-certificates
RUN update-ca-certificates
RUN pip install -r requirements.txt
EXPOSE 8000
CMD python ./controller.py cloud

要求.txt

iso4217
validators
pymongo
pymongo[srv]
flask
lxml
flask-cors
configparser

更新:我發現連接是加密的,連接需要接受 SSL 證書。 我已經嘗試過了,但 Atlas 仍然拒絕連接。

我認為您還需要將pyopenssl添加到您的requirments.txt

我通過添加解決了這個問題

pymongo[tls,srv]

到 requirements.txt

這是生成的 requirements.txt

iso4217
validators
pymongo[tls,srv]
flask
lxml
flask-cors
configparser

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM