docker撰写链接容器

时间:2016-08-17 05:33:07

标签: node.js docker-compose

我有两个容器,一个用于数据库(DynamoDBLocal),另一个用于在Nodejs中编写的Web应用程序。我使用Docker compose来设置两个容器,这就是我的compose文件的样子。

version: '2'
services:
  DynamoDBLocal:
    build:
      context: ./DynamoDBLocal
    image: tags/dynamodb:latest
    ports:
      - "8000:8000"
  SetupService:
    build:
      context: ./setup
    image: tags/setup_service:latest
    ports:
      - "3000:3000"

我的Nodejs应用程序与DynamoDBLocal容器对话。现在我的问题是如何在compose文件(.yml)中设置链接,如何更改Nodejs应用程序中的代码以引用新容器?我的Nodejs应用程序的代码类似于

AWS.config.update({
    accessKeyId: "BLALBLALBLALLBLALB",
    secretAccessKey: "BLABLALBLALBLALBLLALBLALLBLALB",
    region: "us-west-2",
    endpoint: "http://localhost:8000" //Change this to new container?
});

2 个答案:

答案 0 :(得分:0)

您可以使用DynamoDBLocal容器SetupService来获取ENV variables主机。

var host = process.env.YOUR_CONTAINER_HOST_ENV_VARIABLE

AWS.config.update({
    accessKeyId: "BLALBLALBLALLBLALB",
    secretAccessKey: "BLABLALBLALBLALBLLALBLALLBLALB",
    region: "us-west-2",
    endpoint: "http://"+host+"8000" //Change this to new container?
});

请记住链接容器共享各种ENV变量。

答案 1 :(得分:0)

在撰写网站上,您必须做两件事:为数据库容器命名并将容器链接到您的应用程序。

version: '2'
services:
  DynamoDBLocal:
    container_name: DynamoDBLocal
    build:
      context: ./DynamoDBLocal
    image: tags/dynamodb:latest
  SetupService:
    build:
      context: ./setup
    image: tags/setup_service:latest
    ports:
      - "3000:3000"
    links:
      - DynamoDBLocal
然后,您可以通过它的名称访问容器:

http://DynamoDBLocal:8000