docker - 将多容器部署到 AWS 的最佳方式是什么?
问题描述
我有一个 docker-compose.yaml 可以在本地使用docker compose up
命令完美运行。这是文件:
version: "2.2"
services:
redis:
image: redis:latest
ports:
- "6379:6379"
expose:
- "6379"
cubestore:
image: cubejs/cubestore:latest
environment:
- CUBESTORE_REMOTE_DIR=/cube/data
volumes:
- .cubestore:/cube/data
**cubejs-api:**
build:
context: .
dockerfile: Dockerfile
ports:
- 4000:4000
- 3000:3000
environment:
- CUBEJS_CUBESTORE_HOST=localhost
- CUBEJS_WEB_SOCKETS=true
- CUBEJS_DB_TYPE=mysql
- CUBEJS_API_SECRET=adaJHNIKJGHaaKBDDKJ
- NODE_ENV=production
- CUBEJS_REDIS_URL=redis://redis:6379
- DEBUG_LOG=true
- CUBESTORE_LOG_LEVEL=info
depends_on:
- cubestore
- redis
links:
- cubestore
volumes:
- .:/cube/conf
- /cube/conf/node_modules
working_dir: /cube/conf
cubejs-api
是我的主要应用程序,它连接到 redis 和 cubestore 等其他服务。现在,我想将其移至 AWS。
我尝试通过创建 ECS 上下文并运行docker compose up
命令来做到这一点,但它失败了,因为它使用 Fargate 作为默认值,并且 Fargate 不支持某些功能。所以我想我必须使用EC2。我尝试的另一种方法是,为 ECR 创建一个图像cubejs-api
并推送到 ECR 并在集群下的任务中运行它。它有效,但我无法添加其他依赖项(redis 和 cubestore)。我尝试在任务定义中为它们添加容器以及 cubejs-api 容器,但失败并出现错误。
谁能让我知道最好的方法是什么?
解决方案
推荐阅读
- html - 是否有将内联样式转换为 css 类的包
- node.js - useQuery 返回未定义,但在 gql 操场上返回数据
- r - randomForest 包的功能重要性
- javascript - 如何从链表显示到控制台节点
- c++ - 并行小数组比并行大数组慢?
- oracle - 带有用户配置文件和角色的 Oracle 12c 导入转储
- json - Normalizr 更改原始文件 .json 或生成具有所需架构的新文件 .json?
- google-app-engine - 通过 Gitlab CI 部署的 Google App Engine 上的 Svelte/Sapper 应用程序 500 错误
- javascript - 全局安装本地 Node.js 项目
- javascript - 如果本地存储为空,则在 HTML 输出中隐藏 div 字段