title: Gitlab CI Service Access
body: <p>I want to test my nodejs app with mongo db access in gitlab ci. therefore I setup a mongo service and try to connect to it. Docs says, it should be reachable by hostname. but it seems, that my app doesn't find the mongo service. 
  Is there a possibillity to explicit map ports? As the Dockerimage exposes 27017, but I don't know what gitlab does under the hood.</p>
  
  <p>.gitlab-ci.yml</p>
  
  <pre><code>test:
    stage: test
    image: docker:latest
    services:
      - docker:dind
      - mongo:latest
    variables:
      MONGO_INITDB_ROOT_USERNAME: test
      MONGO_INITDB_ROOT_PASSWORD: test
    before_script:
      - docker build -t app -f Dockerfile.test .
    script:
      - docker run app  npm run test
  </code></pre>
  
  <p>Error</p>
  
  <pre><code>MongoNetworkError: failed to connect to server [mongo:27017] on first connect [MongoNetworkError: getaddrinfo ENOTFOUND mongo mongo:27017]
      at Pool.&lt;anonymous&gt; (/usr/src/app/node_modules/mongodb-core/lib/topologies/server.js:564:11)
      at emitOne (events.js:116:13)
      at Pool.emit (events.js:211:7)
      at Connection.&lt;anonymous&gt; (/usr/src/app/node_modules/mongodb-core/lib/connection/pool.js:317:12)
      at Object.onceWrapper (events.js:317:30)
      at emitTwo (events.js:126:13)
      at Connection.emit (events.js:214:7)
      at Socket.&lt;anonymous&gt; (/usr/src/app/node_modules/mongodb-core/lib/connection/connection.js:246:50)
      at Object.onceWrapper (events.js:315:30)
      at emitOne (events.js:116:13)
      at Socket.emit (events.js:211:7)
      at emitErrorNT (internal/streams/destroy.js:64:8)
      at _combinedTickCallback (internal/process/next_tick.js:138:11)
      at process._tickCallback (internal/process/next_tick.js:180:9)
  </code></pre>