I在此处遵循确切的文档,但是当我运行Docker-Composs在DynamoDB-Local完全启动和运行之前,我遇到了问题。我不得不restar ...

问题描述 投票:0回答:3

我会遇到错误:

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已准备就绪。
amazon-web-services docker-compose amazon-dynamodb
3个回答
5
投票

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
    ```

希望这帮助


1
投票
对于docker-compose.yml将其添加到DynamoDB-Local

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

0
投票
工厂就像码头一侧的魅力一样。等待maven解决方案。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.