Вопросы по использованию docker -компонента для AWS ECS или бобового стебля - PullRequest
0 голосов
/ 16 апреля 2020

Мне нравилось использовать docker -compose в моей локальной среде разработки, и я надеялся, что смогу использовать магию c из docker-compose up при использовании Paas / PaaS-подобных опций, таких как EB и ECS.

К сожалению, процесс выглядит гораздо более ручным, так как мне нужно создать отдельные изображения из Dockerfiles, загрузить их в ECR / Dockerhub, а затем создать собственные определения задач или файлы dockerrun aws. json. , Почти заставляет меня усомниться в полезности docker -compose, если производственные модели PaaS не могут его использовать, но я отвлекся.

Так что мой docker -compose в настоящее время имеет следующее:

  1. a python flask API-сервис (из пользовательского Dockerfile)

  2. клиентская служба реагирования (из пользовательского Dockerfile)

  3. сервис redis, построенный из стандартного образа redis

  4. python rq рабочий сервис (из flask API-интерфейса в # 1)

Мои 2 вопроса:

  • Я понимаю, что мне нужно создать образы для flask, реагировать на файлы докеров и отправлять их в ECR. Но как насчет сервисов Redis и RQ? Сервер redis является стандартным redis, поэтому я, вероятно, могу получить его из некоторой базы данных ECR, , но рабочая служба rq фактически построена из самого образа flask api . Итак, как мне go о создании образа для этого для ECR?

  • Я пытался использовать контейнерную передачу, но, похоже, отсутствуют инструкции о том, как создать dockerrun aws. json файл из docker -композитного файла, который у меня есть? Есть ли какие-либо ресурсы о том, как сделать это преобразование?

Любое указание или общее указание пальцем в правильном направлении спасло бы эту душу!

Вот docker составьте файл для справки:

version: '3'

services:
  web:
    build:
      context: ./server
      dockerfile: Dockerfile.prod
    image: server
    ports:
      - "5000:5000"
    env_file:
      - .env.prod
    restart: always
  redis:
    image: redis:latest
    expose:
      - "6379"
    command: ["sh", "-c", "redis-server --appendonly yes"]
    restart: always
    depends_on:
      - web
  worker:
    image: server
    command: supervisord -c /usr/src/server/supervisord.conf -n
    restart: always
    env_file:
      - .env.prod
    depends_on:
      - redis
  rq-dashboard:
    image: rq-dashboard
    build:
      context: ./rq-dashboard
    ports:
      - "9181:9181"
    expose:
      - "9181"
    links:
      - redis
    restart: always
    depends_on:
      - redis
  client:
    env_file:
      - .env.prod
    build:
      context: ./client
      dockerfile: Dockerfile.prod
      args:
        - REACT_APP_API_IDENTIFIER=http://localhost:5000
    image: client
    stdin_open: true
    depends_on:
      - web
    ports:
      - "80:80"
...