Using Docker-Swarm to duplicate Docker-Compose?

  docker, docker-compose, docker-swarm

I have 1 docker compose file that runs 4 services which communicate with each other. These four services act like a 1 tank controller and 3 tank sensors. I want to duplicate the entire docker-compose with all four services using Docker Swarm. Here is an image of what I’m trying to do: image showing final goal

I am having a lot of confusion when setting up docker swarm. I ran the following commands:

docker swarm init
docker stack deploy --compose-file=docker-compose.yml tank

But this set up only lets me scale one service at a time. For example:

docker service scale tank_lowlevelalarm=4

This isn’t what I want to do. I want to be able to scale the entire docker-compose by replicating all four services at the same time. My goal is that on my overlay network, it will look like I have multiple tanks, and each tank has 1 controller and 3 sensors. Is it possible for me to do this?

My docker-compose file, for reference:

version: '3.0'
services:
  tli:
    image: tli
    networks:
      - my-overlay

  lowlvlalarm:
    image: lowlvlalarm
    build: .
    networks:
      - my-overlay

  highlvlalarm:
    image: highlvlalarm
    build: ./HighLvlAlarm
    networks:
      - my-overlay

  plc:
    image: plc
    depends_on:
      - tli
      - lowlvlalarm
      - highlvlalarm
    networks:
      - my-overlay

networks:
  my-overlay:

Source: Docker Questions

LEAVE A COMMENT