我会遇到错误:
version: '3.8'
services:
dynamodb-local:
command: "-jar DynamoDBLocal.jar -sharedDb -dbPath ./data"
image: "amazon/dynamodb-local:latest"
container_name: dynamodb-local
ports:
- "8000:8000"
volumes:
- "./docker/dynamodb:/home/dynamodblocal/data"
working_dir: /home/dynamodblocal
app-node:
depends_on:
- dynamodb-local
image: amazon/aws-cli
container_name: app-node
ports:
- "8080:8080"
environment:
AWS_ACCESS_KEY_ID: 'DUMMYIDEXAMPLE'
AWS_SECRET_ACCESS_KEY: 'DUMMYEXAMPLEKEY'
command:
dynamodb describe-limits --endpoint-url http://dynamodb-local:8000 --region us-west-2
失败后再次运行容器将使其工作
我为此找到了解决方法。由于DynamoDB的较新版本不再接受
Could not connect to the endpoint URL: "http://dynamodb-local:8000/"
的连接,也不会接受
localhost:8000
的外壳,因此它将始终返回400个状态代码。我添加了DynamoDB的HealthCheck,以等待返回的400个状态代码,以确保DB已准备就绪。
I为我的Docker-Compose构建服务员服务,将其作为App-Node的依赖。
healthcheck:
test:
[
"CMD-SHELL",
'if [ "$(curl -s -o /dev/null -I -w ''%{http_code}'' http://localhost:8000)" == "400" ]; then exit 0; else exit 1; fi',
]
interval: 5s
timeout: 5s
retries: 10
```
希望这帮助
waitTimer:
image: busybox:1.28
container_name: waitTimer
command: sleep 5
对于Shell脚本,AWS-CLI将运行添加此
volumes:
- "./<table_name>-table-schema.json:/aws/giftcard-table-schema.json"
- "./create-<table_name>-table.sh:/aws/create-giftcard-table.sh"
entrypoint: /bin/bash
command: ./create-<table_name>-table.sh