从容器连接到Atlas mongoDB的超时错误

时间:2019-10-12 18:47:29

标签: python mongodb docker containers mongodb-atlas

当我在没有容器的本地应用程序上运行时,我的应用程序可以连接到我的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

requirements.txt

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

已更新:我发现该连接已加密,并且该连接需要接受SSL证书。我已经尝试过了,但是Atlas仍然拒绝连接。

1 个答案:

答案 0 :(得分:0)

我通过添加

解决了该问题
pymongo[tls,srv]

到requirements.txt

这是最终的要求。txt

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