
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!LocalStack
LocalStack提供了一个易于使用的测试/模拟框架,用于开发云应用程序。目前主要专注于支持AWS云栈,可在本地机器上启动多种核心AWS服务的模拟实例,方便开发人员在无需连接真实AWS环境的情况下进行应用开发、测试和调试。本镜像为原atlassian/localstack的分支版本,修复了SNS发布功能相关的问题。
LocalStack在本地机器上启动以下核心云服务API:
** API Gateway:http://localhost:4567
makepython(支持Python 2.x和3.x)pip(Python包管理器)npm(Node.js包管理器)java/javac(Java 8运行时环境和编译器)mvn(Maven构建工具)最简单的安装方式是使用pip:
bashpip install localstack
安装后启动基础设施:
bashlocalstack start
可通过Docker启动LocalStack:
bashlocalstack start --docker
或使用docker-compose(需先克隆仓库):
bashdocker-compose up
注意:在macOS上,如果
$TMPDIR包含Docker无法挂载的符号链接,可能需要运行:TMPDIR=/private$TMPDIR docker-compose up
可通过以下环境变量配置LocalStack:
| 环境变量 | 说明 |
|---|---|
SERVICES | 逗号分隔的服务名称及可选端口。若未指定端口则使用默认值。服务名称对应AWS CLI的服务名(如kinesis、lambda)。示例:kinesis,lambda:4569,sqs:4570 |
DEFAULT_REGION | AWS区域,默认us-east-1 |
HOSTNAME | 服务暴露的主机名,默认localhost |
USE_SSL | 是否使用HTTPS,默认false |
KINESIS_ERROR_PROBABILITY | 0.0-1.0之间的小数,控制Kinesis随机注入"预配置吞吐量超出异常"的概率,默认0.0 |
DYNAMODB_ERROR_PROBABILITY | 0.0-1.0之间的小数,控制DynamoDB随机注入"预配置吞吐量超出异常"的概率,默认0.0 |
LAMBDA_EXECUTOR | Lambda执行方式:local(本地临时目录)或docker(独立容器),默认docker(若Docker不可用则回退到local) |
LAMBDA_REMOTE_DOCKER | false(默认):通过挂载卷传递Lambda定义;true:通过复制zip文件传递,支持远程执行 |
DATA_DIR | 持久化数据存储目录(目前支持Kinesis、DynamoDB、Elasticsearch),设置为/tmp/localstack/data启用持久化,留空则禁用 |
可将AWS CLI指向本地基础设施:
bashaws --endpoint-url=http://localhost:4568 kinesis list-streams { "StreamNames": [] }
在Python代码中使用boto3时,通过endpoint_url参数连接本地服务:
pythonimport boto3 kinesis = boto3.client('kinesis', endpoint_url='http://localhost:4568') print(kinesis.list_streams())
可参考localstack.utils.aws.aws_stack获取连接本地服务的便捷方法。
在集成测试中,可在测试 setup/teardown 中启动/停止基础设施:
pythonfrom localstack.mock import infra def setup(): infra.start_infra(async=True) def teardown(): infra.stop_infra() def my_app_test(): # 测试逻辑 pass
更多示例见tests/test_integration.py。
项目提供JUnit运行器,示例如下:
java@RunWith(LocalstackTestRunner.class) public class MyCloudAppTest { @Test public void testLocalS3API() { AmazonS3 s3 = new AmazonS3Client(...); s3.setEndpoint(LocalstackTestRunner.getEndpointS3()); List<Bucket> buckets = s3.listBuckets(); // 测试逻辑 } }
Maven依赖配置:
xml<project ...> ... <dependencies> ... <dependency> <groupId>com.atlassian</groupId> <artifactId>localstack-utils</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> <repositories> <repository> <id>localstack-repo</id> <url>https://bitbucket.org/atlassian/localstack/raw/mvn/release</url> </repository> </repositories> </project>
javas3.setS3ClientOptions(S3ClientOptions.builder().setPathStyleAccess(true).build()); // 或使用构建器 AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard(); builder.withPathStyleAccessEnabled(true);
$TMPDIR包含无法挂载的符号链接,运行TMPDIR=/private$TMPDIR docker-compose up克隆仓库后安装依赖:
bashmake install
启动开发用基础设施:
bashmake infra
执行单元测试和集成测试:
bashmake test
启动Web仪表板查看部署的AWS组件及其关系:
bashlocalstack web
USE_SSL配置);创建Docker基础镜像;修复DATA_DIR问题欢迎反馈、错误报告和拉取请求!提交拉取请求请遵循以下准则:
LocalStack采用Apache License 2.0许可(见LICENSE.txt)。
构建于多个第三方软件工具之上,相关许可信息如下:
| 第三方软件 | 许可 |
|---|---|
| Python/pip模块: | |
| airspeed | BSD License |
| amazon_kclpy | Amazon Software License |
| boto3 | Apache License 2.0 |
| coverage | Apache License 2.0 |
| docopt | MIT License |
| elasticsearch | Apache License 2.0 |
| flask | BSD License |
| flask_swagger | MIT License |
| jsonpath-rw | Apache License 2.0 |
| moto | Apache License 2.0 |
| nose | GNU LGPL |
| pep8 | Expat license |
| requests | Apache License 2.0 |
| sh | MIT License |
| subprocess32 | PSF License |
| Node.js/npm模块: | |
| dynalite | MIT License |
| kinesalite | MIT License |
| 其他工具: | |
| Elasticsearch | Apache License 2.0 |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 igeshosk/localstack 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: