mirror of
https://github.com/dockersamples/example-voting-app.git
synced 2026-02-14 18:29:51 +00:00
The reasoning of this is because port 5000 is, by default, used by an AirPlay receiver process on Macs. While this can be turned off, we'd like this app to work without needing to adjust default configurations on a machine.
97 lines
1.9 KiB
YAML
97 lines
1.9 KiB
YAML
# version is now using "compose spec"
|
|
# v2 and v3 are now combined!
|
|
# docker-compose v1.27+ required
|
|
|
|
services:
|
|
vote:
|
|
build:
|
|
context: ./vote
|
|
target: dev
|
|
depends_on:
|
|
redis:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost"]
|
|
interval: 15s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 10s
|
|
volumes:
|
|
- ./vote:/usr/local/app
|
|
ports:
|
|
- "8080:80"
|
|
networks:
|
|
- front-tier
|
|
- back-tier
|
|
|
|
result:
|
|
build: ./result
|
|
# use nodemon rather than node for local dev
|
|
entrypoint: nodemon --inspect=0.0.0.0 server.js
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
volumes:
|
|
- ./result:/usr/local/app
|
|
ports:
|
|
- "8081:80"
|
|
- "127.0.0.1:9229:9229"
|
|
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:
|