Skip to content
Snippets Groups Projects
docker-compose.yaml 2.42 KiB
Newer Older
cedricimt's avatar
cedricimt committed
version: '3.8'

services:
  seed:
    image: europe-west9-docker.pkg.dev/devops-421107/voting-image/seed
    container_name: seed
    build:
      context: ./seed-data
    networks:
      - front-tier
    depends_on:
      - nginx
      - result

  result:
    image: europe-west9-docker.pkg.dev/devops-421107/voting-image/result
    container_name: result
    build:
      context: ./result
    ports:
      - "4000:4200"
    networks:
      - front-tier
      - back-tier
    depends_on:
      - postgres
    environment:
      - PORT=4200
    
  vote:
      image: europe-west9-docker.pkg.dev/devops-421107/voting-image/vote
      container_name: vote
      build:
        context: ./vote
      ports:
        - "5000:5000"
      networks:
        - front-tier
        - back-tier
      depends_on:
        - redis
      environment:
        - REDIS_HOST=redis
        - REDIS_PORT=6379
  vote1:
      container_name: vote1
      build:
        context: ./vote
      ports:
        - "5001:5000"
      networks:
        - front-tier
        - back-tier
      depends_on:
        - redis
      environment:
        - REDIS_HOST=redis
        - REDIS_PORT=6379

  worker:
    image: europe-west9-docker.pkg.dev/devops-421107/voting-image/worker
    container_name: worker
    build:
      context: ./worker
    networks:
      - back-tier
    depends_on:
      - redis
      - postgres
    environment:
      - REDIS_HOST=redis
      - REDIS_PORT=6379
      - TARGETPLATFORM=linux-x64
      - TARGETARCH=x64


  nginx:
    # image: europe-west9-docker.pkg.dev/devops-421107/voting-image/nginx
    container_name: nginx
    build:
      context: ./nginx
    ports:
      - "8000:8000"
      - "80:80"
    networks:
      - front-tier
    depends_on:
      - vote

  postgres:
    container_name: db
    image: postgres:15-alpine
    volumes:
      - db-data:/var/lib/postgresql/data
    networks:
      - back-tier
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=postgres

  redis:
    container_name: redis
    image: redis:alpine
    volumes:
      - ./healthchecks:/healthchecks
    healthcheck:
      test: [ "CMD", "/bin/sh", "/healthchecks/redis.sh" ]
      interval: 10s
      timeout: 5s
      retries: 3
    networks:
      - back-tier

networks:
  front-tier:
  back-tier:

volumes:
  db-data: