travis上与mongodb的连接被拒绝

travis上与mongodb的连接被拒绝,mongodb,docker,travis-ci,Mongodb,Docker,Travis Ci,我正在尝试在Travis上设置mongo以用于集成测试。初始化mongodb的travis配置是: env: global: - MONGODB_URI: mongodb://fillrx_test:test@127.0.0.1:27017/fillrx_test_db before_install: - sleep 15 - mongo fillrx_test_db --eval 'db.createUser({user:"fillrx_test", p

我正在尝试在Travis上设置mongo以用于集成测试。初始化mongodb的travis配置是:

env:
  global:
    - MONGODB_URI: mongodb://fillrx_test:test@127.0.0.1:27017/fillrx_test_db
before_install:
  - sleep 15
  - mongo fillrx_test_db --eval 'db.createUser({user:"fillrx_test", pwd:"test",roles:["readWrite"]});'
  - docker build -t jeremycod/api-test -f ./server/Dockerfile.dev ./server

script:
  - docker run --env MONGODB_URI -e CI=true jeremycod/api-test npm test

但是,这在Travis上失败,出现连接被拒绝错误:

      1) Create address endpoint /api/v1/address/user/userId

       "before all" hook: connectToTestDB for "Create address with correct input":

       MongoNetworkError: failed to connect to server [127.0.0.1:27017] on first connect [Error: connect ECONNREFUSED 127.0.0.1:27017

       at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)  {

            name: 'MongoNetworkError'

       }]
更新:

此问题的解决方案是使用“-networkhost”运行docker容器,例如


您需要启动服务器。谢谢您的建议。我没有将mongodb添加到服务列表中,因此它不可用。但是,在将mongodb添加为服务后,它不会从travis脚本中失败,但会在我运行的测试中失败。我猜这可能与我在docker容器中运行测试有关。您需要启动服务器。谢谢您的建议。我没有将mongodb添加到服务列表中,因此它不可用。但是,在将mongodb添加为服务后,它不会从travis脚本中失败,但在我运行的测试中失败。我猜这可能与我在docker容器中运行测试有关。
- docker run --network host --env MONGODB_URI -e CI=true jeremycod/api-test npm test

This approach binds docker container directly to the Docker host’s network, so it's available from docker container at url:

mongodb://127.0.0.1:27017/mongo_db_name