Docker container ของแอพ flask สามารถเชื่อมต่อกับ localhost MongoDB [ซ้ำกัน]

Oct 11 2020

ฉันยังใหม่กับนักเทียบท่า ฉันมีแอปหนึ่งขวดที่ทำงานบนคอนเทนเนอร์นักเทียบท่าของฉันและแอปพลิเคชันจำเป็นต้องเชื่อมต่อกับ MongoDB เพื่อดำเนินการ CRUD

แต่ฉันมีปัญหาในการเชื่อมต่อระหว่างนักเทียบท่าและ localhost คอนเทนเนอร์ไม่สามารถเชื่อมต่อกับ MongoDB localhost ของฉันได้

ดังนั้นแอปขวดที่เป็นไปได้จากคอนเทนเนอร์นักเทียบท่าเชื่อมต่อกับ MongoDB ในพื้นที่หรือไม่

แอพ My Flask ตั้งค่าการกำหนดค่า MongoDB:

cilent = pymongo.MongoClient('127.0.0.1',27017)

การกำหนดค่า Dockerfile ของฉัน:

FROM ubuntu:latest

MAINTAINER Michael Levan

CMD tail -f /dev/null

RUN apt-get update -y && apt-get install -y python3-pip python-dev

EXPOSE 8080
EXPOSE 5000

COPY ./requirements.txt /app/requirements.txt

WORKDIR /app

RUN pip3 install -r requirements.txt

COPY . /app

ENTRYPOINT [ "python3" ]
CMD [ "app.py" ]

คำตอบ

quatron Oct 12 2020 at 13:41

ตามคำแนะนำการสร้าง mongodb ภายใน Docker จะเป็นเรื่องง่าย แต่คุณสามารถตรวจสอบนักเทียบท่าเชื่อมต่อกับฐานข้อมูลท้องถิ่นและนักเทียบท่าเพื่อ Mongo