3

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.

.gitlab-ci.yml

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 

Error

MongoNetworkError: failed to connect to server [mongo:27017] on first connect [MongoNetworkError: getaddrinfo ENOTFOUND mongo mongo:27017] at Pool.<anonymous> (/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.<anonymous> (/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.<anonymous> (/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) 
1
  • Have you ever managed to solved this? Commented Sep 10, 2019 at 12:44

1 Answer 1

1

You can configure an alias for the hostname of your mongo service:

services: - name: docker:dind - name: mongo:latest alias: mongo 

Otherwise you can forward your mongo port:

 before_script: - apt install -y socat - socat tcp-listen:27017,fork tcp:mongo:27017 & - docker build -t app -f Dockerfile.test . 
Sign up to request clarification or add additional context in comments.

1 Comment

setting the alias also doesn't works. Also apt is not found in docker image

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.