На экземпляре T2-Micro в AWS / EC2 -
Я построил четыре контейнера Docker, как показано в файле .yaml ниже.
Это:
- Nginx
- экономика (приложение 1)
- выборы (приложение2)
- социальная (приложение 3)
В каждом из трех контейнеров приложения есть веб-серверы gunicorn, обслуживающие одно колбу. Это приложения Plot.ly/Dash.
Как можно видеть, для каждого приложения требуется контейнер, который становится громоздким после трех и начинает потреблять слишком много памяти в экземпляре T2-Micro.
Что было бы идеально, если бы каждый контейнер приложения, т. Е. Экономика, выборы, социальные сети и т. Д., Мог иметь несколько приложений с несколькими флягами, используя итерацию порта, такую как 5000, 5001, 5002 и т. Д. Все они были бы адресуемы с помощью уникальных номеров портов, которые может быть перечислено в файле .yaml.
Использование отдельных контейнеров, отдельных стеков gunicorn, флаконов и зависимых пакетов уменьшит требования к памяти для отдельных контейнеров, что позволит мне загружать больше приложений на один экземпляр ec2.
Файл .yaml ниже:
version: '2.1'
services:
economy:
container_name: economy
hostname: economy
restart: always
build: economy
networks:
tsworker-net:
expose:
- "8000"
volumes:
- ./data:/tmp/data:ro
command: gunicorn -w 1 -b :8000 economy:server
elections:
container_name: elections
hostname: elections
restart: always
build: elections
networks:
tsworker-net:
expose:
- "8500"
volumes:
- ./data:/tmp/data:ro
- ./assets:/tmp/assets:ro
environment:
- FLASK_ENV=development
command: gunicorn --log-level debug -w 1 -b :8500 elections:server
social:
container_name: social
hostname: social
restart: always
build: social
networks:
tsworker-net:
expose:
- "9000"
volumes:
- ./data:/tmp/data:ro
command: gunicorn -w 1 -b :9000 social:server # was 8000
nginx:
image: nginx:1.15
container_name: nginx
hostname: nginx
restart: unless-stopped
networks:
tsworker-net:
ports:
- 80:80
- 443:443
volumes:
- ./nginx/nginx.http.conf:/etc/nginx/conf.d/default.conf:ro
- /etc/letsencrypt/etc:/etc/letsencrypt
- /etc/letsencrypt/www:/var/www/letsencrypt
environment:
- TZ=UTC
depends_on:
- economy
- elections
- social
networks:
tsworker-net:
driver: bridge
Любая помощь с этим будет высоко ценится.