Как исправить локальный вызов Dynamodb с помощью docker-compose - PullRequest
0 голосов
/ 15 апреля 2019

Я запускаю приложение springboot и локальный DynamodB в контейнерах Docker через docker-compose.

Оба контейнера успешно запускаются.

Когда я использую имя контейнера для значения AMAZON_AWS_DYNAMODB_ENDPOINT,Я получаю следующую ошибку:

[https-jsse-nio-8443-exec-6] [2019-04-15 08:03:42,239] INFO   com.amazonaws.protocol.json.JsonContent [] - Unable to parse HTTP response content
com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
at [Source: (byte[])"<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://aws.amazon.com/dynamodb/">here</a>.</p>
</body></html>

Далее я получаю следующую ошибку:

com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: null (Service: AmazonDynamoDBv2; Status Code: 301; Error Code: null; Request ID: null)

Если я заменю значение AMAZON_AWS_DYNAMODB_ENDPOINT на мой IP-адрес компьютера Windows (с запущенными контейнерами)) он успешно работает.

Есть предложения о том, как заставить работать имя контейнера?

Вот мой docker-compose:

version: '3'
services:
  dynamodb:
    image: amazon/dynamodb-local
    ports:
      - "8000:8000"
    volumes:
      - dynamodata:/data
    command: "-jar DynamoDBLocal.jar -sharedDb -dbPath ."

  app:
    build: .
    ports:
      - "8443:8443"

    environment:
      - SERVER_PORT=8443
      - SERVER_SSL_KEY_STORE=/etc/ssl/key
      - SERVER_SSL_KEY_STORE_TYPE=PKCS12
      - SERVER_SSL_KEY_ALIAS=tomcat
      - SERVER_SSL_KEY_STORE_PASSWORD=xxxxxx
      - SPRING_PROFILES_ACTIVE=aws,local
      - DATAPOWER_ENABLED=true
#      - AMAZON_AWS_DYNAMODB_ENDPOINT=${DYNAMODB_ENDPOINT:-http://dynamodb:8000}  <--- does not work
#      - AMAZON_AWS_DYNAMODB_ENDPOINT=${DYNAMODB_ENDPOINT:-http://xx.xxx.xxx.xxx:8000}  <--- works
      - AMAZON_AWS_DYNAMODB_REGION=${DYNAMODB_REGION:-us-east-1}
      - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-local}
      - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-xxxxxxxxxx}
      - ENV=dev
      - AWS_REGION=us-east-1

volumes:
  dynamodata:

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...