import mongoengine
client = mongoengine.connect('ppo-image-server-db', host="db", port=27017)
db = client.test_db
test_data = {
'name' : 'test'
}
db.test_data.insert_one( test_data )
print("DONE")
我有一个docker-compose.yml,看起来像下面的样子
version: '2'
networks:
micronet:
services:
user-info-service:
restart : always
build : .
container_name: test-user-info-service
working_dir : /usr/local/app/test
entrypoint : ""
command : ["manage", "run-user-info-service", "--host=0.0.0.0", "--port=5000"]
volumes :
- ./:/usr/local/app/test/
ports :
- "5000:5000"
networks :
- micronet
links:
- db
db:
image : mongo:3.0.2
container_name : test-mongodb
volumes :
- ./data/db:/data/db
ports :
- "27017:27017"
但是每次我运行docker-compose build和docker-compose up时,python脚本都无法找到主机(在本例中为“ db”).我是否需要任何特殊链接或任何环境变量来传递mongo服务器的IP地址?
我仍然可以使用robomongo访问dockerized mongo-db
请注意,我尚未为此测试用例创建任何docker-machine.
您能帮我指出我的配置中缺少什么吗?
解决方法:
是,
您需要告诉docker一个应用程序依赖于另一个.这是我构建docker-compose的方法:
version: '2'
services:
mongo-server:
image: mongo
volumes:
- .data/mdata:/data/db # mongodb persistence
myStuff:
build: ./myStuff
depends_on:
- mongo-server
另外,在连接URL中,您需要使用URL“ mongo-server”. Docker将负责将您的代码连接到mongo容器.
例:
private val mongoClient: MongoClient = MongoClient("mongodb://mongo-server:27017")
那应该解决你的问题
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。