[英]running commands in docker-compose
我試圖在具有Ubuntu 15.10的VPS機器上運行兩個docker容器,並為此使用docker-compose
。 一個容器是mongodb服務器,另一個則運行以node.js / sails.js編寫的Web應用程序。
我在docker-compose.yml
寫了以下內容,以便docker-compose.yml
docker-compose up
可以運行兩個容器。 我正在將Web應用程序安裝到Web應用程序Docker容器中的目錄/host
,並希望執行端口映射3050:1337
(host:docker)。 為了運行Web應用程序,我使用了command
標簽,並使用bash更改了目錄並執行了sails lift
命令,但是,它不起作用。 我猜我的以下腳本是錯誤的:
MongoDB:
image: mongo
MyAPI:
image: sailsjs-microservice:dev
volumes:
- /root/Code/node/My-API:/host
command: bash -c "cd /host && sails lift"
ports:
- "3050:1337"
我感謝您的幫助
我尚未在sailsjs-microservice容器中看到日志,但我認為您應該在API容器中添加指向mongo容器的鏈接。
將其添加到撰寫文件的一種方法是:
MyApi:
links:
- mongo:mongo
第一個mongo是要鏈接的圖像的名稱,第二個是別名,例如可以是db。 Docker將容器的IP地址作為環境變量導出,並為此添加一個/etc/hosts
條目,以便您可以通過連接到mongo:27017(其中mongo是compose中定義的別名)在服務代碼中引用它。文件,並且27017是默認端口)。
看一下鏈接環境變量
MongoDB:
image: mongo
networks:
- myApi-tier
MyAPI:
image: sailsjs-microservice:dev
volumes:
- /root/Code/node/My-API:/host
command: bash -c "cd /host && sails lift"
networks:
- myApi-tier
networks:
myApi-tier:
您可以嘗試使用網絡,現在可以在服務內部解析mongodb了,可以使用標准端口,就像uri MongoDB一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.