docker 中的 Localstack:特定于健康检查的 s3 已启动

Localstack in docker : healthcheck specific s3 started

我启动了一个运行良好的 localstack 容器,但我需要等待 /docker-entrypoint-initaws.d 中的脚本创建的 s3 存储桶完全正常运行,然后再启动我的其他容器。

我知道有可能等待 localstack 完全准备好:

healthcheck:
   test: ["CMD", "curl", "http://localhost:4566/health?reload"]

但是有没有一种方法可以检查特定 s3 存储桶的运行状况?

我想通了:

healthcheck:
      test: [ "CMD", "awslocal", "s3api", "wait", "bucket-exists", "--bucket", "<name_of_your_bucket>" ]

最好的方法是使用 AWS 客户端 (awslocal),但是 URL 对于特定的存储桶应该是:

http://my-bucket-name.s3.localhost.localstack.cloud:4566/

GET 应该 return 类似于:

<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>my-bucket-name</Name>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
</ListBucketResult>