我使用Python 3.6开发了一个项目,现在需要在部署更新之前运行集成测试。该基础架构是基于AWS Cloud的,因此我需要一款可模拟所有AWS服务的产品。 我找到了localstack,现在需要在AWS CodeBuild中运行它。
我无法将localstack安装为依赖项(使用pip),因为它需要以普通用户而非root用户身份启动。
在Internet上搜索时,我发现localstack社区创建了他们的custom Docker image,但不幸的是,我无法使用它,因为它基于node:alpine
,并且我需要一个基于Ubuntu 14.04的版本。
我尝试过,但是无法创建包含已安装的本地堆栈基础结构的Docker映像(用于AWS CodeBuild)。我使用Python 3.6,Java,Node.js和localstack所需的所有服务创建了一个docker镜像。
在每个版本中,我都必须运行我在Buildspec文件中输入的以下命令来重新安装localstack:
- sudo -S su - ubuntu -c "git clone https://github.com/localstack/localstack.git /home/ubuntu/localstack"
- sudo -S su - ubuntu -c "cd /home/ubuntu/localstack && make install"
- sudo -S su - ubuntu -c "cd /home/ubuntu/localstack && make infra > launch_infra.txt &"
- sleep 60
60秒后,就可以使用基础结构了,但是当我尝试向Elasticsearch中写入内容时出现此错误:
WARNING: POST http://localhost:4571/test_index/_doc/79628c72b262e37d51495d6b202de5d582b2c37501b62a038e2459be01f706c2/_update?retry_on_conflict=30 [status:N/A request:14.836s]
urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='localhost', port=4571): Read timed out. (read timeout=10)
它一直工作到5天前,现在我无法运行任何集成测试,所以我决定找到一种解决方案来创建安装了localstack的Docker映像。有没有人设法创造那个?