2016-06-20 5 views
0

私はUbuntu 15.10を持つVPSマシンで2つのドッカーコンテナを実行しようとしていますが、これにはdocker-composeを使用しています。 1つのコンテナはmongodbサーバで、もう1つはnode.js/sails.jsで書かれた私のWebアプリケーションを実行します。docker-composeでコマンドを実行しています

docker-compose.ymlに次のように書いて、docker-compose upが両方のコンテナを実行するようにしました。私はウェブアプリケーションドッカーコンテナ内のディレクトリ/hostにウェブアプリケーションをマウントしており、3050:1337(ホスト:ドッカー)のポートマッピングを実行したいと考えています。 Webアプリケーションを実行するには、commandラベルを使用し、ディレクトリを変更してsails liftコマンドを実行するためにbashを使用しますが、動作しません。私は次のスクリプトが間違っていると思います:

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容器内のログを見ていないが、私はあなたがあなたのあなたのmongoコンテナへのリンクを追加すべきだと思うあなたの助け

+0

ええ、あなたのAPIセクションにあなたのデータベースへのリンクを追加するのを忘れていたと思います。 APIサービスは、そのmongoインスタンスに正しく接続できるはずですか? –

答えて

1

に感謝しますAPIコンテナそれはあなたのコンファイルにこれを追加することです行うには

一つの方法:

MyApi: 
    links: 
    - mongo:mongo 

最初モンゴは、第二の別名で、あなたがリンクしたい画像の名前です。例えばデシベルかもしれません。 DockerはコンテナーのIPアドレスを環境変数としてエクスポートし、/etc/hostsエントリを追加して、mongo:27017に接続してサービスのコード内で参照できるようにします(mongoは作成ファイルで定義されている別名です) 27017はデフォルトのポートです)。

はあなたが標準のポートを使用するとURIのMongoDBのようにすることができますMongoDBを解決するために、今、あなたのサービスの内部で、ネットワークを試すことができますlink environment variables

1
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: 

上を見てみましょう。

関連する問題