docker - 本地 DynamoDB : Unable to execute HTTP request — Connection refused

标签 docker docker-compose amazon-dynamodb

我通过 docker-compose 运行本地 DynamoDB 和应用程序。不幸的是,我在从应用程序查询 DynamoDB 时遇到错误:

Unable to execute HTTP request: Connect to dynamodb:80 [dynamodb/172.18.0.2] failed: Connection refused (Connection refused)

这是 docker-compose 的样子:

version: "3"
services:
  dynamodb:
    image: "dynamodb-local:latest"
    container_name: app-dynamodb
    ports:
      - "80:8000"
  api:
    image: "app-backend:latest"
    container_name: app-api
    ports:
      - "5000:5000"
      - "5100:5100"
    environment:
      - DYNAMO_HOST=dynamodb:80

以下是 DynamoDB 的 Dockerfile:

FROM openjdk:8-jre

ENV DYNAMODB_VERSION=latest

COPY .aws/ root/.aws/
COPY setup.sh setup.sh
COPY setup-stats.sh setup-stats.sh

RUN apt-get update && \
    apt-get install -y python python-pip && \
    pip --no-cache-dir install awscli && \
    apt-get clean all && \
    curl -O https://s3-us-west-2.amazonaws.com/dynamodb-local/dynamodb_local_${DYNAMODB_VERSION}.tar.gz && \
    tar zxvf dynamodb_local_${DYNAMODB_VERSION}.tar.gz && \
    rm dynamodb_local_${DYNAMODB_VERSION}.tar.gz

EXPOSE 8000

ENTRYPOINT java -Djava.library.path=. -jar DynamoDBLocal.jar --sharedDb -inMemory

更新:

  1. 我可以通过 http://localhost/shell 从主机连接到 dynamoDB JS shell
  2. 我无法从应用容器连接到 dynamoDB:
wget dynamodb/shell
Connecting to dynamodb (172.18.0.2:80)
wget: can't connect to remote host (172.18.0.2): Connection refused
  • 该应用是用 Scala 编写的,并使用 Scanamo 与 DynamoDB 进行交互
  • 最佳答案

    问题在于缺少 DYNAMO_ACCESS_KEYDYNAMO_SECRET_KEY 尽管 dyanmoDB 是本地的并且在内存中运行,但它无论如何都需要 access_keysecret_key

    此外,这些值不应该为空!因此,请设置您想要的任何内容,例如“foo”或“bar”。

    关于docker - 本地 DynamoDB : Unable to execute HTTP request — Connection refused,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54665643/

    相关文章:

    docker - 为 golang 的 dockerfile 查找路径时出错

    python - 为什么找不到Dockerfile?

    django - 无效的 HTTP_HOST header : The domain name provided is not valid -- requests to dockerized django app using container name

    amazon-web-services - 模拟 AWS Promise 时出现 "docClient.scan(...).promise is not a function"错误

    docker - 连接到在远程服务器上的 docker 中运行的 jupyter notebook

    docker - 为什么打印不能与异步生成器一起正常工作?

    macos - docker for mac 启动失败

    visual-studio - Visual Studio/Docker 开发 vs 最新版本?

    c# - DynamoDb 条件插入

    amazon-dynamodb - 是否可以在 DynamoDB 中更新插入嵌套字段?