【问题标题】:Deploying an ECS application to AWS using docker compose使用 docker compose 将 ECS 应用程序部署到 AWS
【发布时间】:2021-08-03 20:02:41
【问题描述】:

我正在关注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)。 我已经更新到最新版本的 Docker Desktop for Windows 和 AWS CLI。

有人遇到过类似的问题吗?

【问题讨论】:

    标签: amazon-web-services docker docker-compose amazon-ecs amazon-ecr


    【解决方案1】:

    从消息看来,您正在尝试构建一个已经存在的堆栈(在 AWS 上),因此它正在尝试更新 CFN 堆栈。你能检查一下是否是这种情况吗?如果发生这种情况,您有几个选择:1) 删除 CFN 堆栈(在 AWS 中或使用 docker compose down)或 2) 使用标志 --project-name string 启动 docker compose up(其中 string 是任意的您选择的名称)。默认情况下,compose 将使用目录名称作为项目名称,因此如果您组合两次,它将尝试在同一个堆栈上工作。

    【讨论】:

    • 非常感谢。是的,显然,AWS 陷入了崩溃状态。所以docker compose down帮助我销毁了所有资源,以便我可以重新创建它们。
    猜你喜欢
    • 2017-09-30
    • 2021-01-24
    • 2021-06-03
    • 2020-10-12
    • 2021-05-12
    • 2019-05-04
    • 2020-07-22
    • 2020-12-30
    • 1970-01-01
    相关资源
    最近更新 更多