Мне нравилось использовать docker -compose в моей локальной среде разработки, и я надеялся, что смогу использовать магию c из docker-compose up
при использовании Paas / PaaS-подобных опций, таких как EB и ECS.
К сожалению, процесс выглядит гораздо более ручным, так как мне нужно создать отдельные изображения из Dockerfiles, загрузить их в ECR / Dockerhub, а затем создать собственные определения задач или файлы dockerrun aws. json. , Почти заставляет меня усомниться в полезности docker -compose, если производственные модели PaaS не могут его использовать, но я отвлекся.
Так что мой docker -compose в настоящее время имеет следующее:
a python flask API-сервис (из пользовательского Dockerfile)
клиентская служба реагирования (из пользовательского Dockerfile)
сервис redis, построенный из стандартного образа redis
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"