Мне удалось запустить docker-compose.yml с помощью док-машины. У меня проблема с масштабированием. Пытается масштабировать приложение node.js, использующее порт 3000. Как я могу масштабировать сервис-докере? Я знаю, что могу использовать docker-compose scale web=3
в рое 1 узла (сервера), но это не работает, потому что я указал порт 3000, что приводит к конфликту.Развертывание docker-compose в качестве yml для масштабирования с использованием того же порта
Как я могу заставить его работать динамически, не прибегая к использованию HAProxy или Nginx?
Dockerfile
FROM node:wheezy
# replace this with your application's default port
EXPOSE 3000
ADD . /install
WORKDIR /install
ENV NODE_PATH /usr/local/lib/node_modules/
RUN npm install -g $(cat packages) && rm -rf npm_cache /tmp/* && npm install
# Install node modules and start
CMD ["npm", "install"]
CMD ["node", "."]
докер-compose.yml
version: "2"
services:
web:
build: .
ports:
- "3000:3000"
links:
- mongo
environment:
- "affinity:image==node:wheezy"
mongo:
image: mongo
volumes:
- ./appdb:/data/db
volumes:
mongo-data:
driver: local
Благодарим вас за отзыв. Я надеялся быть немного ленивым, но я возьму ваш совет и добавлю балансировку нагрузки к уравнению. –
NP! Я думаю (надеюсь), что вы будете счастливы в конечном итоге. Я бы рекомендовал этот балансировщик нагрузки, так как он может обновлять свою конфигурацию при масштабировании по шкале услуг: https://hub.docker.com/r/dockercloud/haproxy/. Это тот же LB Docker, который используется на их официальном Docker Cloud. –
Прохладный. Это выглядит многообещающим от подглядывания на docker-compose.yml на демо-ссылке выше. –