2016-12-10 12 views
0

リンクドッカーコンテナから環境変数にアクセスする方法を知りたいと思います。私はリンクされたrethinkdbコンテナからノードアプリケーションのホスト/ポートにアクセスしたいと思います。ドッキングウィンドウのコン(bluemixserviceとrethinkdb)の使用:リンクされたコンテナから環境変数にアクセスする

version: '2' 
services: 
    twitterservice: 
    build: ./workerTwitter 
    links: 
     - mongodb:mongolink 
     - rabbitmq:rabbitlink 
    ports: 
     - "8082:8082" 
    depends_on: 
     - mongodb 
     - rabbitmq 
    bluemixservice: 
    build: ./workerBluemix 
    links: 
     - rabbitmq:rabbitlink 
     - rethinkdb:rethinkdb 
    ports: 
     - "8083:8083" 
    depends_on: 
     - rabbitmq 
     - rethinkdb 
    mongodb: 
    image: mongo:latest 
    ports: 
     - "27017:27017" 
    volumes: 
     - mongo-data:/var/lib/mongo 
    command: mongod 
    rabbitmq: 
    image: rabbitmq:management 
    ports: 
     - '15672:15672' 
     - '5672:5672' 
    rethinkdb: 
     image: rethinkdb:latest 
     ports: 
     - "8080:8080" 
     - "28015:28015" 
volumes: 
    mongo-data: 
    driver: local 
    rethink-data: 
    driver: local 

私はPM2のprocesses.jsonでそれらにアクセスしたいと思います:

{ 
    "apps": [ 
     { 
      "name": "sentiment-service", 
      "script": "./src", 
      "merge_logs": true, 
      "max_restarts": 40, 
      "restart_delay": 10000, 
      "instances": 1, 
      "max_memory_restart": "200M", 
      "env": { 
       "PORT": 8080, 
       "NODE_ENV": "production", 
       "RABBIT_MQ": "amqp://rabbitlink:5672/", 
       "ALCHEMY_KEY": "xxxxxxx", 
       "RETHINK_DB_HOST": "Rethink DB Container Hostname?", 
       "RETHINK_DB_PORT": "Rethink DB Container Port?", 
       "RETHINK_DB_AUTHKEY": "" 
      } 
     } 
    ] 
} 

答えて

0

これは(hereを参照)が可能でしたが、今の提案あなたがすでにrabbitmqであなたの例で行っているように、リンクされたサービス名をホスト名として使うだけです。ポート番号に関して、私はそれが変数を使用するために多くを追加するとは思わない。私は平野の数字だけで行くだろう。しかし、外部から値をすばやく変更できるようにしたい場合は、parameterize the whole docker-compose.yml using variablesを使用できます。

リンクのエイリアスを行う必要はありません。サービス名を使用するだけではっきりとわかります。

また、linksは既にdepends_onを意味します。

0

私はすべてのコンテナを検出するためにconsulとregistratorを使用して解決しました。

version: '2' 
services: 
    consul: 
    command: -server -bootstrap -advertise 192.168.99.101 
    image: progrium/consul:latest 
    ports: 
     - 8300:8300 
     - 8400:8400 # rpc/rest 
     - 8500:8500 # ui 
     - 8600:53/udp # dns 
    registrator: 
    command: -ip=192.168.99.101 consul://consul:8500 
    image: gliderlabs/registrator:latest 
    volumes: 
     - "/var/run/docker.sock:/tmp/docker.sock" 
    links: 
     - consul 
    twitterservice: 
    build: ./workerTwitter 
    container_name: twitterservice 
    links: 
     - mongodb:mongolink 
     - rabbitmq:rabbitlink 
     - consul 
    ports: 
     - "8082:8082" 
    depends_on: 
     - mongodb 
     - rabbitmq 
     - consul 
    bluemixservice: 
    build: ./workerBluemix 
    container_name: bluemixservice 
    links: 
     - rabbitmq:rabbitlink 
     - rethinkdb:rethinkdb 
     - consul 
    ports: 
     - "8083:8083" 
    depends_on: 
     - rabbitmq 
     - rethinkdb 
     - consul 
    mongodb: 
    image: mongo:latest 
    container_name: mongo 
    ports: 
     - "27017:27017" 
    links: 
     - consul 
    volumes: 
     - mongo-data:/var/lib/mongo 
    command: mongod 
    rabbitmq: 
    image: rabbitmq:management 
    container_name: rabbitmq 
    ports: 
     - '15672:15672' 
     - '5672:5672' 
    links: 
     - consul 
    depends_on: 
     - consul 
    rethinkdb: 
     image: rethinkdb:latest 
     container_name: rethinkdb 
     ports: 
     - "8080:8080" 
     - "28015:28015" 
     links: 
     - consul 
     depends_on: 
     - consul 
volumes: 
    mongo-data: 
    driver: local 
    rethink-data: 
    driver: local 
関連する問題