version: "3.3" services: threetwo: build: context: . image: frishi/threetwo container_name: threetwo-ui env_file: ./environment.list restart: unless-stopped volumes: - $COMICS_DIRECTORY:/comics - $USERDATA_DIRECTORY:/userdata ports: - "8050:8050" - "3050:3050" links: - importapi depends_on: - db - redis - nats - traefik - importapi - import - imagetransformation networks: - proxy comicvineapi: build: context: https://github.com/rishighan/comicvine-service.git image: frishi/comicvine-service container_name: comicvine-api ports: - "3080:3080" volumes: - ${COMICS_DIRECTORY}:/comicvine-service/comics - ${USERDATA_DIRECTORY}:/comicvine-service/userdata environment: SERVICES: api env_file: comicvine-service.env depends_on: - nats networks: - proxy comicvine: build: context: https://github.com/rishighan/comicvine-service.git image: frishi/comicvine-service container_name: comicvine-service environment: SERVICES: comicvine COMICVINE_API_KEY: ${COMICVINE_API_KEY} volumes: - ${COMICS_DIRECTORY}:/comicvine-service/comics - ${USERDATA_DIRECTORY}:/comicvine-service/userdata env_file: comicvine-service.env networks: - proxy importapi: build: context: https://github.com/rishighan/threetwo-import-service.git image: frishi/threetwo-import-service container_name: importapi ports: - "3000:3000" - "3001:3001" environment: SERVICES: api env_file: threetwo-import-service.env volumes: - ${USERDATA_DIRECTORY}:/threetwo-import-service/userdata - ${COMICS_DIRECTORY}:/threetwo-import-service/comics depends_on: - nats - db networks: - proxy import: build: context: https://github.com/rishighan/threetwo-import-service.git image: frishi/threetwo-import-service container_name: import depends_on: - db - nats environment: SERVICES: import volumes: - ${USERDATA_DIRECTORY}:/threetwo-import-service/userdata - ${COMICS_DIRECTORY}:/threetwo-import-service/comics env_file: threetwo-import-service.env networks: - proxy imagetransformation: build: context: https://github.com/rishighan/threetwo-import-service.git image: frishi/threetwo-import-service container_name: image-transformation volumes: - ${USERDATA_DIRECTORY}:/threetwo-import-service/userdata - ${COMICS_DIRECTORY}:/threetwo-import-service/comics depends_on: - db - nats environment: SERVICES: imagetransformation env_file: threetwo-import-service.env networks: - proxy libraryqueue: build: context: https://github.com/rishighan/threetwo-import-service.git image: frishi/threetwo-import-service container_name: library-queue volumes: - ${USERDATA_DIRECTORY}:/threetwo-import-service/userdata - ${COMICS_DIRECTORY}:/threetwo-import-service/comics depends_on: - db - nats environment: SERVICES: libraryqueue env_file: threetwo-import-service.env networks: - proxy db: image: 'bitnami/mongodb:latest' container_name: database networks: - proxy ports: - "27017:27017" volumes: - 'mongodb_data:/bitnami/mongodb' nats: image: nats:2 container_name: transporter networks: - proxy redis: image: 'bitnami/redis:latest' container_name: queue environment: ALLOW_EMPTY_PASSWORD: "yes" networks: - proxy ports: - "6379:6379" traefik: image: traefik:2.3.4 restart: unless-stopped container_name: traefik hostname: traefik command: - "--log.level=DEBUG" - "--api.insecure=true" - "--providers.docker=true" - "--providers.docker.watch=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" labels: - "traefik.enable=true" - "traefik.http.routers.traefik.rule=Host(`traefik.localhost`)" - "traefik.http.routers.traefik.service=api@internal" networks: - proxy ports: - 80:80 - 8080:8080 - 443:443 volumes: - /var/run/docker.sock:/var/run/docker.sock networks: proxy: external: true volumes: mongodb_data: driver: local