Tôi đã gặp sự cố tương tự nhưng với một dịch vụ khác (không phải MongoDB). Tôi không chắc mình đang làm gì sai nhưng đây là cách tôi có thể giải quyết nó:
import os
import mongoengine
MONGODB_HOST = os.environ.get('DB2_PORT_27017_TCP_ADDR', '127.0.0.1')
mongoengine.connect(host=MONGODB_HOST)
- Với
DB2
là tên dịch vụ của bạn trong docker-compos.yml -
27017
là cổng của dịch vụ tiếp xúc. - Tìm hiểu thêm về các biến môi trường docker -omp
- Tôi đã đặt nó vào tệp cài đặt của mình. Tuy nhiên, bạn có thể tự do đặt nó ở bất cứ đâu bạn cho là phù hợp tùy thuộc vào kiến trúc dự án của bạn
CẬP NHẬT
Giờ đây, các dịch vụ khác có thể truy cập các vùng chứa do docker-Composit bằng cách sử dụng tên máy chủ tương tự như bí danh của chúng. tài liệu liên kết :
Và theo cách đó, bạn có thể kết nối với MongoDB như thế này:
import mongoengine
mongoengine.connect(host="db2")