Add compose files
This commit is contained in:
69
docker-compose/docker-compose.images.yml
Normal file
69
docker-compose/docker-compose.images.yml
Normal file
@@ -0,0 +1,69 @@
|
||||
# for running in docker compose with prebuilt images
|
||||
|
||||
# version is now using "compose spec"
|
||||
# v2 and v3 are now combined!
|
||||
# docker-compose v1.27+ required
|
||||
|
||||
services:
|
||||
vote:
|
||||
image: dockersamples/examplevotingapp_vote
|
||||
depends_on:
|
||||
redis:
|
||||
condition: service_healthy
|
||||
ports:
|
||||
- "5000:80"
|
||||
networks:
|
||||
- front-tier
|
||||
- back-tier
|
||||
|
||||
result:
|
||||
image: dockersamples/examplevotingapp_result
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
ports:
|
||||
- "5001:80"
|
||||
networks:
|
||||
- front-tier
|
||||
- back-tier
|
||||
|
||||
worker:
|
||||
image: dockersamples/examplevotingapp_worker
|
||||
depends_on:
|
||||
redis:
|
||||
condition: service_healthy
|
||||
db:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- back-tier
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
volumes:
|
||||
- "./healthchecks:/healthchecks"
|
||||
healthcheck:
|
||||
test: /healthchecks/redis.sh
|
||||
interval: "5s"
|
||||
networks:
|
||||
- back-tier
|
||||
|
||||
db:
|
||||
image: postgres:15-alpine
|
||||
environment:
|
||||
POSTGRES_USER: "postgres"
|
||||
POSTGRES_PASSWORD: "postgres"
|
||||
volumes:
|
||||
- "db-data:/var/lib/postgresql/data"
|
||||
- "./healthchecks:/healthchecks"
|
||||
healthcheck:
|
||||
test: /healthchecks/postgres.sh
|
||||
interval: "5s"
|
||||
networks:
|
||||
- back-tier
|
||||
|
||||
volumes:
|
||||
db-data:
|
||||
|
||||
networks:
|
||||
front-tier:
|
||||
back-tier:
|
||||
96
docker-compose/docker-compose.yml
Normal file
96
docker-compose/docker-compose.yml
Normal file
@@ -0,0 +1,96 @@
|
||||
# version is now using "compose spec"
|
||||
# v2 and v3 are now combined!
|
||||
# docker-compose v1.27+ required
|
||||
|
||||
services:
|
||||
vote:
|
||||
build: ./vote
|
||||
# use python rather than gunicorn for local dev
|
||||
command: python app.py
|
||||
depends_on:
|
||||
redis:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost"]
|
||||
interval: 15s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
volumes:
|
||||
- ./vote:/app
|
||||
ports:
|
||||
- "5000:80"
|
||||
networks:
|
||||
- front-tier
|
||||
- back-tier
|
||||
|
||||
result:
|
||||
build: ./result
|
||||
# use nodemon rather than node for local dev
|
||||
entrypoint: nodemon server.js
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
volumes:
|
||||
- ./result:/app
|
||||
ports:
|
||||
- "5001:80"
|
||||
- "5858:5858"
|
||||
networks:
|
||||
- front-tier
|
||||
- back-tier
|
||||
|
||||
worker:
|
||||
build:
|
||||
context: ./worker
|
||||
depends_on:
|
||||
redis:
|
||||
condition: service_healthy
|
||||
db:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- back-tier
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
volumes:
|
||||
- "./healthchecks:/healthchecks"
|
||||
healthcheck:
|
||||
test: /healthchecks/redis.sh
|
||||
interval: "5s"
|
||||
networks:
|
||||
- back-tier
|
||||
|
||||
db:
|
||||
image: postgres:15-alpine
|
||||
environment:
|
||||
POSTGRES_USER: "postgres"
|
||||
POSTGRES_PASSWORD: "postgres"
|
||||
volumes:
|
||||
- "db-data:/var/lib/postgresql/data"
|
||||
- "./healthchecks:/healthchecks"
|
||||
healthcheck:
|
||||
test: /healthchecks/postgres.sh
|
||||
interval: "5s"
|
||||
networks:
|
||||
- back-tier
|
||||
|
||||
# this service runs once to seed the database with votes
|
||||
# it won't run unless you specify the "seed" profile
|
||||
# docker compose --profile seed up -d
|
||||
seed:
|
||||
build: ./seed-data
|
||||
profiles: ["seed"]
|
||||
depends_on:
|
||||
vote:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- front-tier
|
||||
restart: "no"
|
||||
|
||||
volumes:
|
||||
db-data:
|
||||
|
||||
networks:
|
||||
front-tier:
|
||||
back-tier:
|
||||
53
docker-compose/docker-stack.yml
Normal file
53
docker-compose/docker-stack.yml
Normal file
@@ -0,0 +1,53 @@
|
||||
# this file is meant for Docker Swarm stacks only
|
||||
# trying it in compose will fail because of multiple replicas trying to bind to the same port
|
||||
# Swarm currently does not support Compose Spec, so we'll pin to the older version 3.9
|
||||
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
networks:
|
||||
- frontend
|
||||
|
||||
db:
|
||||
image: postgres:15-alpine
|
||||
environment:
|
||||
POSTGRES_USER: "postgres"
|
||||
POSTGRES_PASSWORD: "postgres"
|
||||
volumes:
|
||||
- db-data:/var/lib/postgresql/data
|
||||
networks:
|
||||
- backend
|
||||
|
||||
vote:
|
||||
image: dockersamples/examplevotingapp_vote
|
||||
ports:
|
||||
- 5000:80
|
||||
networks:
|
||||
- frontend
|
||||
deploy:
|
||||
replicas: 2
|
||||
|
||||
result:
|
||||
image: dockersamples/examplevotingapp_result
|
||||
ports:
|
||||
- 5001:80
|
||||
networks:
|
||||
- backend
|
||||
|
||||
worker:
|
||||
image: dockersamples/examplevotingapp_worker
|
||||
networks:
|
||||
- frontend
|
||||
- backend
|
||||
deploy:
|
||||
replicas: 2
|
||||
|
||||
networks:
|
||||
frontend:
|
||||
backend:
|
||||
|
||||
volumes:
|
||||
db-data:
|
||||
Reference in New Issue
Block a user