Я запускаю локальную DynamoDB и приложение через docker-compose
.К сожалению, при обращении к 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
Вот как Dockerfile для DynamoDB:
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
ОБНОВЛЕНИЕ:
- Я могу подключиться к оболочке JS DynamoDB с хоста по http://localhost/shell
- ЯНЕ МОЖЕТ подключиться к 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