public
Authored by avatar Fariz Rizaldy

docker-compose.yml

  • Clone with SSH
  • Clone with HTTPS
  • docker-compose.yml 4.81 KiB
    version: "3"
    
    services:
      tesseract-ui:
        restart: unless-stopped
        image: registry.gitlab.delman.io/praedictio/tesseract-ui/ui-test:binus-dev
        container_name: tesseract-ui
        networks:
          - tesseract
        expose:
          - "80"
        labels:
          - "traefik.http.routers.unsecure-ui.rule=PathPrefix(`/`)"
          - "traefik.http.routers.unsecure-ui.entryPoints=http"
          - "traefik.http.middlewares.redirect-ui.redirectscheme.scheme=https"
          - "traefik.http.routers.unsecure-ui.middlewares=redirect-ui"
          - "traefik.http.routers.secure-ui.rule=PathPrefix(`/`)"
          - "traefik.http.routers.secure-ui.tls=true"
          - "traefik.http.routers.secure-ui.entryPoints=https"
          - "traefik.http.services.tesseract-ui.loadbalancer.server.port=80"
          - "traefik.enable=true"
          - "traefik.docker.network=tesseract"
    
      redis:
        restart: unless-stopped
        image: redis:4-alpine
        container_name: redis
        hostname: redis
        expose:
          - 6379
        networks:
          - tesseract
    
      tesseract-station:
        restart: unless-stopped
        image: registry.gitlab.delman.io/praedictio/analytic-station/station_test:binus-release-0-0-2a-hotfix
        container_name: tesseract-station
        networks:
          - tesseract
        depends_on:
          - redis
        env_file:
          - env/.tesseract-station.env
        environment:
          - SKIP_INIT_SCHEDULER=True
        volumes:
          - TmpData:/src/tmp
        expose:
          - 8000
        labels:
          - "traefik.http.middlewares.analytic-stripprefix.stripprefix.prefixes=/analytic"
          - "traefik.http.routers.secure-station.entryPoints=https"
          - "traefik.http.routers.secure-station.rule=PathPrefix(`/analytic`)"
          - "traefik.http.routers.secure-station.tls=true"
          - "traefik.http.routers.secure-station.tls.certresolver=lets"
          - "traefik.http.routers.secure-station.middlewares=analytic-stripprefix@docker"
          - "traefik.http.services.tesseract-station.loadbalancer.server.port=8000"
          - "traefik.enable=true"
          - "traefik.docker.network=tesseract"
        command:
          [
            "gunicorn",
            "--preload",
            "--keep-alive=75",
            "--workers=17",
            "--config",
            "gunicorn.conf.py",
            "app.factory:create_app('app.config.ProdConfig')",
          ]
    
      tesseract-scheduler:
        restart: unless-stopped
        image: registry.gitlab.delman.io/praedictio/analytic-station/station_test:binus-release-0-0-2a-hotfix
        container_name: tesseract-scheduler
        depends_on:
          - redis
        env_file:
          - env/.tesseract-station.env
        volumes:
          - TmpData:/src/tmp
        networks:
          - tesseract
        expose:
          - 8000
        labels:
          - "traefik.http.middlewares.scheduler-stripprefix.stripprefix.prefixes=/analytic"
          - "traefik.http.routers.secure-scheduler.entryPoints=https"
          - "traefik.http.routers.secure-scheduler.rule=PathPrefix(`/analytic/node/{id}/sync/schedule`) || PathPrefix(`/analytic/node/sync/schedule/{id}`)"
          - "traefik.http.routers.secure-scheduler.tls=true"
          - "traefik.http.routers.secure-scheduler.tls.certresolver=lets"
          - "traefik.http.routers.secure-scheduler.middlewares=scheduler-stripprefix@docker"
          - "traefik.http.services.tesseract-scheduler.loadbalancer.server.port=8000"
          - "traefik.docker.network=tesseract"
          - "traefik.enable=true"
        command:
          [
            "gunicorn",
            "--preload",
            "--keep-alive=75",
            "--workers=9",
            "--config",
            "gunicorn.conf.py",
            "app.factory:create_app('app.config.ProdConfig')",
          ]
    
      station-worker:
        restart: unless-stopped
        image: registry.gitlab.delman.io/praedictio/analytic-station/station_test:binus-release-0-0-2a-hotfix
        container_name: station-worker
        depends_on:
          - tesseract-station
        env_file:
          - env/.tesseract-station.env
        volumes:
          - TmpData:/src/tmp
        networks:
          - tesseract
        command:
          [
            celery,
            --app=app.worker.celery,
            worker,
            --concurrency=30,
            --loglevel=INFO,
          ]
    
      traefik:
        image: traefik:v2.9
        init: true
        restart: always
        container_name: tesseract-proxy
        command:
          - "--api.insecure=true"
          - "--providers.docker=true"
          - "--providers.docker.exposedbydefault=false"
          - "--entrypoints.http.address=:80"
          - "--entrypoints.https.address=:443"
          - "--certificatesresolvers.lets.acme.tlschallenge=true"
          - "--certificatesresolvers.lets.acme.email=ssl@delman.io"
          - "--certificatesresolvers.lets.acme.storage=/letsencrypt/acme.json"
          - "--certificatesresolvers.lets.acme.httpchallenge.entrypoint=http"
        ports:
          - "80:80"
          - "443:443"
        networks:
          - tesseract
        volumes:
          - letsencrypt:/letsencrypt
          - /var/run/docker.sock:/var/run/docker.sock:ro
    
    volumes:
      TmpData:
      BoxDB:
      letsencrypt:
    
    networks:
      tesseract:
        ipam:
          config:
            - subnet: 192.168.10.0/24
    0% or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Finish editing this message first!
    Please register or to comment