Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker AWS localstack拒绝来自同一台计算机上正在运行的服务的HTTP请求_Docker_Localstack - Fatal编程技术网

Docker AWS localstack拒绝来自同一台计算机上正在运行的服务的HTTP请求

Docker AWS localstack拒绝来自同一台计算机上正在运行的服务的HTTP请求,docker,localstack,Docker,Localstack,我有一些应用程序是在我的本地机器上运行的docker。 docker-compose.yml文件中有: services: ... localstack: image: localstack/localstack ports: - "4567-4583:4567-4583" environment: - DOCKER_HOST=unix:///var/run/docker.sock - SERVICES=sqs,

我有一些应用程序是在我的本地机器上运行的docker。 docker-compose.yml文件中有:

services:
...
  localstack:
    image: localstack/localstack
    ports:
      - "4567-4583:4567-4583"
    environment:
      - DOCKER_HOST=unix:///var/run/docker.sock
      - SERVICES=sqs,dynamodb,s3
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "/private${TMPDIR}:/tmp/localstack"
    networks:
      - webhooks
我通过运行命令启动docker应用程序

docker-compose up
当我运行应用程序的主服务时,它应该调用docker中运行的伪DynamoDB数据库,然后我得到错误:

[info] 20:24:47.106 [undefined|…pool-9-thread-1] W c.r.webhooks.services.aws.Dynamo$    - Retrying AWS request; retry #0 []
[info] com.amazonaws.SdkClientException: Unable to execute HTTP request: The target server failed to respond
[info]  at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleRetryableException(AmazonHttpClient.java:1136)
[info]  at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1082)
[info]  at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:745)
[info]  at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:719)
[info]  at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:701)
[info]  at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:669)
[info]  at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:651)
[info]  at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:515)
[info]  at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.doInvoke(AmazonDynamoDBClient.java:2925)
[info]  at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:2901)
[info]  at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.executeDescribeTable(AmazonDynamoDBClient.java:1515)
[info]  at com.amazonaws.services.dynamodbv2.AmazonDynamoDBAsyncClient$13.call(AmazonDynamoDBAsyncClient.java:840)
[info]  at com.amazonaws.services.dynamodbv2.AmazonDynamoDBAsyncClient$13.call(AmazonDynamoDBAsyncClient.java:834)
[info]  at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[info]  at com.riskified.webhooks.utils.monitoring.KamonAwsExecutorFactory$ContextRunnable.run(KamonAwsExecutorFactory.scala:17)
[info]  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
[info]  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
看起来我的主应用程序无法连接到localstack中的DynamoDB,尽管我在启动服务器之前已经启动了它。如果我必须打赌的话,我会说保存localstack的容器阻止它从容器外部获取HTTP请求


您知道我为什么会出现此错误吗?

您如何尝试访问DynamoDB服务(哪个URL)?从哪里来

例如,当您试图从lambda函数中访问S3或DynamoDB时,根据文档,您需要URL为
http://${process.env.LOCALSTACK\u HOSTNAME}:EDGE\u PORT

此外,还提供了以下只读环境变量 提供:

LOCALSTACK_HOSTNAME:本地堆栈服务所在主机的名称 可用。使用此主机名作为端点(例如。, http://${LOCALSTACK_HOSTNAME}:4566),以便访问服务 从Lambda函数中(例如,将项目存储到DynamoDB 或来自Lambda的S3)