diff --git a/examples/voting-app/compose-viz.png b/examples/voting-app/compose-viz.png new file mode 100644 index 0000000..64486c2 Binary files /dev/null and b/examples/voting-app/compose-viz.png differ diff --git a/examples/voting-app/docker-compose.yml b/examples/voting-app/docker-compose.yml new file mode 100644 index 0000000..be21988 --- /dev/null +++ b/examples/voting-app/docker-compose.yml @@ -0,0 +1,89 @@ +# https://github.com/docker/labs/blob/master/beginner/chapters/votingapp.md + +version: "3.9" + +services: + redis: + image: redis:alpine + ports: + - "6379" + networks: + - frontend + deploy: + replicas: 2 + update_config: + parallelism: 2 + delay: 10s + restart_policy: + condition: on-failure + db: + image: postgres:9.4 + volumes: + - db-data:/var/lib/postgresql/data + networks: + - backend + deploy: + placement: + constraints: [node.role == manager] + vote: + image: dockersamples/examplevotingapp_vote:before + ports: + - 5000:80 + networks: + - frontend + depends_on: + - redis + deploy: + replicas: 2 + update_config: + parallelism: 2 + restart_policy: + condition: on-failure + result: + image: dockersamples/examplevotingapp_result:before + ports: + - 5001:80 + networks: + - backend + depends_on: + - db + deploy: + replicas: 1 + update_config: + parallelism: 2 + delay: 10s + restart_policy: + condition: on-failure + worker: + image: dockersamples/examplevotingapp_worker + networks: + - frontend + - backend + deploy: + mode: replicated + replicas: 1 + labels: [APP=VOTING] + restart_policy: + condition: on-failure + delay: 10s + max_attempts: 3 + window: 120s + placement: + constraints: [node.role == manager] + visualizer: + image: dockersamples/visualizer + ports: + - "8080:8080" + stop_grace_period: 1m30s + volumes: + - /var/run/docker.sock:/var/run/docker.sock + deploy: + placement: + constraints: [node.role == manager] + +networks: + frontend: + backend: + +volumes: + db-data: