簡體   English   中英

在docker-compose中運行命令

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM