Docker:撰写文件与 Amazon ECS 不兼容

Raj*_*ala 7 django amazon-web-services amazon-ecs docker docker-compose

我正在尝试在 AWS ECS 中部署我的 docker 映像。我已经创建了 ECR 存储库并完成了所有必需的步骤,直到将映像推送到 ECS。

我的 docker-compose.yaml 看起来像这样

version: '3'

services:

  djangoapp:
    image: xxxxx.dkr.ecr.ca-central-1.amazonaws.com/abc:latest #uri after pushing the image
    build: .
    volumes:
      - .:/opt/services/djangoapp/src
      - static_volume:/opt/services/djangoapp/static  # <-- bind the static volume
      - media_volume:/opt/services/djangoapp/media  # <-- bind the media volume
    networks:
      - nginx_network
      - database1_network
    depends_on:
      - database1

      
  nginx:
    image: nginx:1.13
    ports:
      - 80:5000
    volumes:
      - ./config/nginx/conf.d:/etc/nginx/conf.d
      - static_volume:/opt/services/djangoapp/static  # <-- bind the static volume
      - media_volume:/opt/services/djangoapp/media  # <-- bind the media volume
    depends_on:
      - djangoapp
    networks:
      - nginx_network

  database1:
    image: postgres:10
    env_file:
      - config/db/database1_env
    networks:
      - database1_network
    volumes:
      - database1_volume:/var/lib/postgresql/data

networks:
  nginx_network:
    driver: bridge
  database1_network:
    driver: bridge

volumes:
  database1_volume:
  static_volume:  # <-- declare the static volume
  media_volume:  # <-- declare the media volume
Run Code Online (Sandbox Code Playgroud)

我正在尝试运行命令:

docker ecs compose  -n abc up 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

WARN[0000] services.build: unsupported attribute        
WARN[0000] services.volumes: unsupported attribute      
ERRO[0000] published port can't be set to a distinct value than container port: incompatible attribute 
WARN[0000] services.volumes: unsupported attribute      
WARN[0000] services.env_file: unsupported attribute     
WARN[0000] services.volumes: unsupported attribute      
WARN[0000] networks.driver: unsupported attribute       
WARN[0000] networks.driver: unsupported attribute       
compose file is incompatible with Amazon ECS
Run Code Online (Sandbox Code Playgroud)

我正在使用最新版本的 docker 即 19.03.08 和最新的 aws-cli/2.0.39。

小智 5

我面临着同样的麻烦,我能够通过删除除了docker-compose.yaml之外的所有属性来完成它image

在该属性djangoapp下的服务中image,您可以将值设置为带有注释“推送图像后的 uri”的 URI。据推测,这是本地构建的 docker 映像的 URI djangoapp,该映像已推送到 ECR 存储库。

由于您已经构建了映像并将其推djangoapp送到 ECR,因此只需保留该image属性并注释掉错误消息中列出的所有其他属性即可docker-compose.yaml

  1. 建造
  2. ...

就我而言,它有帮助。

支持的属性列表:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cmd-ecs-cli-compose-parameters.html