我有两个容器,一个用于数据库(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?
});
答案 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