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 volumes: - ${COMICS_DIRECTORY}:/comicvine-service/comics - ${USERDATA_DIRECTORY}:/comicvine-service/userdata - ${SERVICE_ENV_FILE}:/comicvine-service/.env/service.env 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 - ${SERVICE_ENV_FILE}:/threetwo-import-service/.env/service.env 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" elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0 environment: - "discovery.type=single-node" - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - "xpack.security.enabled=true" - "xpack.security.authc.api_key.enabled=true" - "ELASTIC_PASSWORD=password" ulimits: memlock: soft: -1 hard: -1 ports: - 9200:9200 entsearch: image: docker.elastic.co/enterprise-search/enterprise-search:7.10.0 depends_on: - "elasticsearch" environment: - "ENT_SEARCH_DEFAULT_PASSWORD=password" - "elasticsearch.username=elastic" - "elasticsearch.password=password" - "elasticsearch.host=http://elasticsearch:9200" - "allow_es_settings_modification=true" - "secret_management.encryption_keys=[4a2cd3f81d39bf28738c10db0ca782095ffac07279561809eecc722e0c20eb09]" - "elasticsearch.startup_retry.interval=15" ports: - 3002:3002 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 elasticsearch: driver: local