From 33e296f140be743180196285f3c15c50b579c595 Mon Sep 17 00:00:00 2001 From: Tsvetan Ivanov Date: Sat, 9 May 2020 12:28:28 +0300 Subject: [PATCH] feat: add compose task --- Tasks/6.Compose/README.md | 6 ++++ Tasks/6.Compose/docker-compose.yml | 47 +++++++++++++++++++++++++++++ Tasks/6.Compose/voting-app.png | Bin 0 -> 44480 bytes 3 files changed, 53 insertions(+) create mode 100644 Tasks/6.Compose/README.md create mode 100644 Tasks/6.Compose/docker-compose.yml create mode 100644 Tasks/6.Compose/voting-app.png diff --git a/Tasks/6.Compose/README.md b/Tasks/6.Compose/README.md new file mode 100644 index 0000000..ad4d47e --- /dev/null +++ b/Tasks/6.Compose/README.md @@ -0,0 +1,6 @@ +# Practice - Docker Compose + +## Fix _docker-compose.yml_ and ensure the Voting app is working properly + - Review the Voting app [diagram](./voting-app.png) + - Fix [docker-compose.yml](./docker-compose.yml) + - Ensure the Voting app is working properly diff --git a/Tasks/6.Compose/docker-compose.yml b/Tasks/6.Compose/docker-compose.yml new file mode 100644 index 0000000..c282bb9 --- /dev/null +++ b/Tasks/6.Compose/docker-compose.yml @@ -0,0 +1,47 @@ +version: "2" + +services: + vote: + image: dockersamples/examplevotingapp_vote:latest + networks: + - front-end-subnet + ports: + - "80:80" + + # Hint: On which port the container is listening? + result: + image: dockersamples/examplevotingapp_result:latest + networks: + - back-end-subnet + ports: + - "8080:8080" + + # Hint: What network is going to be attached to the worker service? + worker: + image: dockersamples/examplevotingapp_worker:latest + depends_on: + - "redis" + - "db" + + # Hint: Should we care about the service name? + redis-mredis: + image: redis:3.2 + networks: + - front-end-subnet + + # Hint: environment variable should be set to allow connections without setting database password + db: + image: postgres:9.4 + networks: + - back-end-subnet + volumes: + - db-data:/var/lib/postgresql/data + +# Hint: Do we need volumes section? + +# Hint: Do we need special network drivers to run the app? +networks: + front-end-subnet: + driver: custom + back-end-subnet: + driver: bridge diff --git a/Tasks/6.Compose/voting-app.png b/Tasks/6.Compose/voting-app.png new file mode 100644 index 0000000000000000000000000000000000000000..9410895ea2337c54e424658010cc9daf7bbf3e16 GIT binary patch literal 44480 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 literal 0 HcmV?d00001