Download Docker. If you are on Mac or Windows, Docker Compose will be automatically installed. On Linux, make sure you have the latest version of Compose.
Run in this directory:
docker-compose up
The app will be running at http://localhost:5000, and the results will be at http://localhost:5001.
Alternately, if you want to run it on a Docker Swarm, first make sure you have a swarm. If you don't, run:
docker swarm init
Once you have your swarm, in this directory run:
docker stack deploy --compose-file docker-stack.yml vote
- A Python webapp which lets you vote between two options
 - A Redis queue which collects new votes
 - A .NET worker which consumes votes and stores them in…
 - A Postgres database backed by a Docker volume
 - A Node.js webapp which shows the results of the voting in real time
 
The voting application only accepts one vote per client. It does not register votes if a vote has already been submitted from a client.
Codefresh Docker CI/CD service is able to deply the voting application to specified remote swarm cluster.
Add following step to your codefresh.yml
version: '1.0'
steps:
...
  deploy_to_swarm:
    image: codefresh/remote-docker
    working_directory: ${{main_clone}}
    commands:
      - rdocker ${{RDOCKER_HOST}} docker stack deploy --compose-file docker-stack.yml ${{STACK_NAME}}
    environment:
      - SSH_KEY=${{SSH_KEY}}
    when:
      branch:
        only:
          - master
Where:
RDOCKER_HOST- remote Docker swarm master machine, accessible over SSH (for example, ubuntu@ec2-public-ip)STACK_NAME- is new Docker stack name (use "vote", for example)SSH_KEY- private SSH key, used to access Docker swarm master machineSPLIT_CHAR- split character, you've used to replacenewlinein SSH key. Recommendation: use,(commacharacter).
Currently in order to pass SSH key through Codefresh UI, you need to convert it to single line string (replacing newline with comma), like this:
$ SSH_KEY=$(cat ~/.ssh/my_ssh_key_file | tr '\n' ',')
