我正在尝试使用 node 和 dynamoDB 设置本地环境,但是我无法在我的应用容器内连接到DynamoDB容器。
它适用于nodemon,但不适用于2个容器。
我公开了所需的端口,并添加了所需的环境变量,但是我仍然遇到此错误:
Error: connect ECONNREFUSED 127.0.0.1:8000
at TCPConnectWrap.afterConnec
这是我的Docker
文件:
FROM node:12-alpine
WORKDIR /usr/src/app
ENV AWS_ACCESS_KEY_ID=24534
ENV AWS_SECRET_ACCESS_KEY=33535
COPY package*.json ./
RUN npm install
COPY . .
CMD [ "npm", "start" ]
EXPOSE 3000
这是我的docker-compose.yml
文件:
version: "3"
services:
app:
build: .
ports:
- 3000:3000
- 8001:8001
volumes:
- ~/.aws:/root/.aws
- .env:/usr/src/app/.env
dynamodb:
image: amazon/dynamodb-local
ports:
- 8000:8000
我的节点应用程序已启动(我的测试端点正常运行),但是它不起作用,谢谢您的帮助。
有关信息,这是我如何在节点应用程序中连接到aws-sdk
:
const AWS = require('aws-sdk');
AWS.config.update({
region: process.env.AWSRegion,
endpoint: process.env.AWSEndpoint
});
AWSRegion=eu-west-3
AWSEndpoint="http://localhost:8000"
答案 0 :(得分:0)
因此,我终于实现了在我的应用程序容器内访问dynamoDB容器的操作。
应用容器中的 localhost
指的是容器,因此我必须在.env
文件中进行更改:
AWSEndpoint=http://localhost:8000
AWSEndpoint=http://dynamodb:8000
默认情况下,使用docker-compose.yml
文件无需在容器之间定义links
,因为默认情况下它们在同一网络上是 : bridge ,因此这些更改使其有效。