使用 docker compose 将 ECS 应用程序部署到 AWS
Deploying an ECS application to AWS using docker compose
我正在关注 AWS tutorial 使用 docker compose
部署 ECS 应用程序。
当我运行docker compose up
时,我只收到消息docker UpdateInProgress User Initiated
,但没有其他任何反应:
[+] Running 0/0
- docker UpdateInProgress User Initiated 0.0s
以前,这工作正常,所有 ECS 资源(集群、任务定义、服务、负载均衡器)都已创建。
出于某种原因,现在,这不再有效(尽管我没有更改我的 docker-compose.yml 文件)。
docker-compose.yml:
version: '3'
services:
postgres:
image: ${AWS_DOCKER_REGISTRY}/postgres
networks:
- my-network
ports:
- "5432:5432"
volumes:
- postgres:/data/postgres
server:
image: ${AWS_DOCKER_REGISTRY}/server
networks:
- my-network
env_file:
- .env
ports:
- "${PORT}:${PORT}"
depends_on:
- postgres
entrypoint: "/server/run.sh"
pgadmin:
image: ${AWS_DOCKER_REGISTRY}/pgadmin
networks:
- my-network
depends_on:
- postgres
volumes:
- pgadmin:/root/.pgadmin
ports:
- "${PGADMIN_PORT:-5050}:${PGADMIN_PORT:-5050}"
networks:
my-network:
#driver: bridge
volumes:
postgres:
pgadmin:
我之前也切换到正确的Docker上下文(docker context use my-aws-context
)。
我已经为 Windows 和 AWS CLI 更新到最新版本的 Docker Desktop。
有人遇到过类似的问题吗?
从消息来看,您似乎正在尝试组合一个已经存在(在 AWS 上)的堆栈,因此它正在尝试更新 CFN 堆栈。你能检查一下是否是这种情况吗?如果发生这种情况,您有几个选择:1) 删除 CFN 堆栈(在 AWS 中或使用 docker compose down
)或 2) 使用标志 --project-name string
启动 docker compose up
(其中string
是您选择的任意名称)。默认情况下,compose 将使用目录名称作为项目名称,因此如果您两次 compose up 它将尝试在同一个堆栈上工作。
我正在关注 AWS tutorial 使用 docker compose
部署 ECS 应用程序。
当我运行docker compose up
时,我只收到消息docker UpdateInProgress User Initiated
,但没有其他任何反应:
[+] Running 0/0
- docker UpdateInProgress User Initiated 0.0s
以前,这工作正常,所有 ECS 资源(集群、任务定义、服务、负载均衡器)都已创建。
出于某种原因,现在,这不再有效(尽管我没有更改我的 docker-compose.yml 文件)。
docker-compose.yml:
version: '3'
services:
postgres:
image: ${AWS_DOCKER_REGISTRY}/postgres
networks:
- my-network
ports:
- "5432:5432"
volumes:
- postgres:/data/postgres
server:
image: ${AWS_DOCKER_REGISTRY}/server
networks:
- my-network
env_file:
- .env
ports:
- "${PORT}:${PORT}"
depends_on:
- postgres
entrypoint: "/server/run.sh"
pgadmin:
image: ${AWS_DOCKER_REGISTRY}/pgadmin
networks:
- my-network
depends_on:
- postgres
volumes:
- pgadmin:/root/.pgadmin
ports:
- "${PGADMIN_PORT:-5050}:${PGADMIN_PORT:-5050}"
networks:
my-network:
#driver: bridge
volumes:
postgres:
pgadmin:
我之前也切换到正确的Docker上下文(docker context use my-aws-context
)。
我已经为 Windows 和 AWS CLI 更新到最新版本的 Docker Desktop。
有人遇到过类似的问题吗?
从消息来看,您似乎正在尝试组合一个已经存在(在 AWS 上)的堆栈,因此它正在尝试更新 CFN 堆栈。你能检查一下是否是这种情况吗?如果发生这种情况,您有几个选择:1) 删除 CFN 堆栈(在 AWS 中或使用 docker compose down
)或 2) 使用标志 --project-name string
启动 docker compose up
(其中string
是您选择的任意名称)。默认情况下,compose 将使用目录名称作为项目名称,因此如果您两次 compose up 它将尝试在同一个堆栈上工作。