amazon-s3 - 在 localstack 上自动创建 S3 存储桶
问题描述
在我的 docker-compose 中使用 localstack 主要是为了模仿 S3。
我知道我可以创建存储桶,这不是问题。我想做的是在运行 docker-compose up 时自动创建存储桶。
是否已经为 localstack 内置了一些东西?
解决方案
自 version 以来此提交0.10.0
带来的更改。
当容器第一次启动时,它将执行扩展名为 .sh 的文件,这些文件位于
/docker-entrypoint-initaws.d
. 文件将按字母顺序执行。您可以在初始化脚本中使用 awslocal(或 aws)cli 工具轻松地在 localstack 上创建 aws 资源。
version: '3.7'
services:
localstack:
image: localstack/localstack
environment:
- SERVICES=s3
ports:
- "4566:4566"
# - "4572:4572" Old S3 port
volumes:
- ./aws:/docker-entrypoint-initaws.d
在目录中有一个脚本./aws/buckets.sh
:
#!/bin/bash
set -x
awslocal s3 mb s3://bucket
set +x
注意:set [-/+] x
纯粹是用来打开和关闭正在执行的命令的输出。
将产生这个输出:
...
localstack_1 | Starting mock S3 (http port 4572)...
localstack_1 | Waiting for all LocalStack services to be ready
localstack_1 | Ready.
localstack_1 | /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initaws.d/buckets.sh
localstack_1 | ++ awslocal s3 mb s3://bucket
localstack_1 | make_bucket: bucket
localstack_1 | ++ set +x
localstack_1 |
推荐阅读
- java - 在 MacOSX 上的 RStudio 中启动 h2o;Java 问题
- java - 如何在Angular 7中使用“exceljs”自定义(样式)excel文件
- python-2.7 - googlemaps.exceptions.TransportError 在计算距离矩阵时
- java - vertx-redis-client 3.7.0:在每个 http 请求上创建 redis 客户端是否便宜
- python - 无法从 powerpoint 文件中分离文本提取
- python - 用于多个和单个点的 Python 正则表达式
- c# - 如何摆脱自定义异常消息中的类名前缀?
- java - 如何修复 LazyInitializationException - Spring 应用程序中没有会话?
- javascript - 如何使用 channel.overwritePermissions
- azure - SSL 握手失败 java.security.cert.CertPathValidatorException:证书链接错误