我有問題將作爲docker容器運行的nodeJS應用程序連接到mongoDB。讓我解釋我到目前爲止做了什麼:如何將nodeJS docker容器連接到mongoDB
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3a3732cc1d90 mongo:3.4 "docker-entrypoint..." 3 weeks ago Up 3 weeks 27017/tcp mongo_live
正如你所看到的,已經有一個mongo docker容器在運行。
現在我跑我的應用程序的NodeJS泊塢窗容器(這是從meteorJS構建):通過運行
$ docker run -it 0b422defbd59 /bin/bash
在此泊塢窗容器我想要運行的應用程序:
$ node main.js
現在我得到錯誤
Error: MONGO_URL must be set in environment
我已經嘗試設置MONGO_URL通過設置:
ENV MONGO_URL mongodb://mongo_live:27017/
但是,這並不工作:
MongoError: failed to connect to server [mongo_live:27017] on first connect
所以我的問題是如何連接到一個數據庫,這是 - 據我瞭解 - 運行容器的「外部」。另外如何設置一個新的數據庫到這個容器?
我使用泊塢窗撰寫,但不是本案件。讓我解釋一下:這裏是CI工作流程的一部分。因此,我使用dockerfile運行docker build:docker build -t $ CI_REGISTRY_IMAGE:test -f Dockerfile.test。所以我不知道如何在這個設置中使用docker撰寫... – user3142695
Docker撰寫也可以構建一個圖像,您也可以調用運行與撰寫,這可能有助於運行測試。還有'--abort-on-container-exit'選項,對於在CI中運行測試也很有用。例如:https://github.com/mobilityhouse/prometheus-bridge/blob/master/Jenkinsfile#L78 – Boynux
我已經發布了一個docker-compose解決方案,我相信你可以使用它作爲參考並找出它 –