reportportal / service-ui

UI service for ReportPortal
Apache License 2.0
58 stars 107 forks source link

Getting error to access report portal for the first time report portal Refused to execute script from 'http://my-port:8080/ui/#notfound' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled. #3731

Closed Rogatto closed 9 months ago

Rogatto commented 9 months ago

Getting error to access report portal for the first time report portal:

Refused to execute script from 'http://my-port:8080/ui/#notfound' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.

Failed to find a valid digest in the 'integrity' attribute for resource 'http://myport:8080/polyfills.app.34483d47.js' with computed SHA-384 integrity 'keyj'. The resource has been blocked.

AmsterGet commented 9 months ago

Hi @Rogatto ! What is your version of ReportPortal? Are other application services working fine? Can this error be connected with configuration on Gateway side? cc @hlebkanonik

Rogatto commented 9 months ago

@AmsterGet

The docker compose used:

## Installation steps: https://reportportal.io/docs/installation-steps/DeployWithDockerOnLinuxMac/

## This is an example of Docker Compose for ReportPortal
## Do not forget to configure data volumes for production usage

## Execute 'docker compose -f docker-compose.yml -p reportportal up -d --force-recreate' to deploy Report Portal
## Where:
##      '-f docker-compose.yml' -- specifies this compose file
##      '-p reportportal' -- specifies a project name.
##      '-d' -- detached mode: run containers in the background.
##      '--force-recreate' -- recreate containers even if their configuration and image haven’t changed.

## To remove execute 'docker compose -p reportportal down'
##

version: '3.8'
services:

  ## An analyzer instance for main functionality, don't forget to use the same storage settings (either MinIO or filesystem) for analyzer_train
  analyzer:
    image: reportportal/service-auto-analyzer:5.10.0
    logging: &logging
      driver: "json-file"
      options:
        max-size: 100m
        max-file: "5"
    environment:
      LOGGING_LEVEL: info
      AMQP_EXCHANGE_NAME: analyzer-default
      AMQP_VIRTUAL_HOST: analyzer
      AMQP_URL: amqp://rabbitmq:rabbitmq@rabbitmq:5672
      ES_HOSTS: http://elastic:elastic1q2w3e@elasticsearch:9200
      MINIO_SHORT_HOST: minio:9000
      MINIO_ACCESS_KEY: minio
      MINIO_SECRET_KEY: minio123
    depends_on:
      elasticsearch:
        condition: service_started
      rabbitmq:
        condition: service_healthy
    networks:
      - reportportal
    restart: always

  ## An analyzer instance for training, don't forget to set up the same storage (either MinIO or filesystem) as for the main analyzer
  analyzer-train:
    image: reportportal/service-auto-analyzer:5.10.0
    logging:
      <<: *logging
    environment:
      LOGGING_LEVEL: info
      AMQP_EXCHANGE_NAME: analyzer-default
      AMQP_VIRTUAL_HOST: analyzer
      AMQP_URL: amqp://rabbitmq:rabbitmq@rabbitmq:5672
      ES_HOSTS: http://elastic:elastic1q2w3e@elasticsearch:9200
      MINIO_SHORT_HOST: minio:9000
      MINIO_ACCESS_KEY: minio
      MINIO_SECRET_KEY: minio123
      INSTANCE_TASK_TYPE: train
      UWSGI_WORKERS: 1
    depends_on:
      elasticsearch:
        condition: service_started
      rabbitmq:
        condition: service_healthy
    networks:
      - reportportal
    restart: always

  ## Metrics service for analyzing how the analyzer is working and managing retrained models
  metrics-gatherer:
    image: reportportal/service-metrics-gatherer:5.10.0
    logging:
      <<: *logging
    environment:
      LOGGING_LEVEL: info
      ES_HOST: http://elasticsearch:9200
      ES_USER: elastic
      ES_PASSWORD: elastic1q2w3e
      POSTGRES_USER: "rpuser"
      POSTGRES_PASSWORD: "rppass"
      POSTGRES_DB: "reportportal"
      POSTGRES_HOST: "postgres"
      POSTGRES_PORT: 5432
      ALLOWED_START_TIME: "22:00"
      ALLOWED_END_TIME: "08:00"
      #TZ: Europe/Minsk you can change a timezone like this to specify when metrics are gathered
      AMQP_URL: amqp://rabbitmq:rabbitmq@rabbitmq:5672
      AMQP_VIRTUAL_HOST: analyzer
    depends_on:
      - elasticsearch
    networks:
      - reportportal
    restart: always

  ## Initial reportportal db schema. Run once.
  migrations:
    image: reportportal/migrations:5.10.1
    logging:
      <<: *logging
    depends_on:
      postgres:
        condition: service_healthy
    environment:
      POSTGRES_SERVER: postgres
      POSTGRES_PORT: 5432
      POSTGRES_DB: reportportal
      POSTGRES_USER: rpuser
      POSTGRES_PASSWORD: rppass
    networks:
      - reportportal
    restart: on-failure

   ## ReportPortal service for different migrations.
   ## Read more: https://github.com/reportportal/migrations-complex/blob/master/README.md
#  migrations-complex:
#    image: reportportal/migrations-complex:1.0.0
#    ports:
#      - '5020:5020'
#    environment:
#      RP_DB_HOST: postgres
#      RP_DB_USER: rpuser
#      RP_DB_PASS: rppass
#      RP_DB_NAME: reportportal
#      RP_TOKEN_MIGRATION: "true"

  uat:
    image: reportportal/service-authorization:5.10.0
    logging:
      <<: *logging
    # ports:
    #   - "9999:9999"
    environment:
      RP_DB_HOST: postgres
      RP_DB_USER: rpuser
      RP_DB_PASS: rppass
      RP_DB_NAME: reportportal
      RP_AMQP_USER: rabbitmq
      RP_AMQP_PASS: rabbitmq
      RP_AMQP_APIUSER: rabbitmq
      RP_AMQP_APIPASS: rabbitmq
      DATASTORE_TYPE: minio
      DATASTORE_ENDPOINT: http://minio:9000
      DATASTORE_ACCESSKEY: minio
      DATASTORE_SECRETKEY: minio123
      RP_SESSION_LIVE: 86400 # in seconds
      RP_SAML_SESSION-LIVE: 4320
      ## The initial password for superadmin user on the FIRST launch. If the password was changed from the UI, this value can't change the password on redeployments.
      RP_INITIAL_ADMIN_PASSWORD: "erebus"
    healthcheck:
      test: curl -f http://0.0.0.0:9999/health
      interval: 60s
      timeout: 30s
      retries: 10
      start_period: 60s
    labels:
      - "traefik.http.middlewares.uat-strip-prefix.stripprefix.prefixes=/uat"
      - "traefik.http.routers.uat.middlewares=uat-strip-prefix@docker"
      - "traefik.http.routers.uat.rule=PathPrefix(`/uat`)"
      - "traefik.http.routers.uat.service=uat"
      - "traefik.http.services.uat.loadbalancer.server.port=9999"
      - "traefik.http.services.uat.loadbalancer.server.scheme=http"
      - "traefik.expose=true"
    depends_on:
      postgres:
        condition: service_healthy
    networks:
      - reportportal
    restart: always

  index:
    image: reportportal/service-index:5.10.1
    logging:
      <<: *logging
    depends_on:
      gateway:
        condition: service_started
    environment:
      LB_URL: http://gateway:8081
      TRAEFIK_V2_MODE: 'true'
    labels:
      - "traefik.http.routers.index.rule=PathPrefix(`/`)"
      - "traefik.http.routers.index.service=index"
      - "traefik.http.services.index.loadbalancer.server.port=8080"
      - "traefik.http.services.index.loadbalancer.server.scheme=http"
      - "traefik.expose=true"
    networks:
      - reportportal
    restart: always

  api:
    image: reportportal/service-api:5.10.1
    logging:
      <<: *logging
    depends_on:
      rabbitmq:
        condition: service_healthy
      gateway:
        condition: service_started
      postgres:
        condition: service_healthy
    environment:
      ## Double entry moves test logs from PostgreSQL to Elastic-type engines
      ## Ref: https://reportportal.io/blog/double-entry-in-5.7.2
      RP_ELASTICSEARCHLOGMESSAGE_HOST: http://elasticsearch:9200
      RP_DB_HOST: postgres
      RP_DB_USER: rpuser
      RP_DB_PASS: rppass
      RP_DB_NAME: reportportal
      RP_AMQP_USER: rabbitmq
      RP_AMQP_PASS: rabbitmq
      RP_AMQP_APIUSER: rabbitmq
      RP_AMQP_APIPASS: rabbitmq
      RP_AMQP_ANALYZER-VHOST: analyzer
      DATASTORE_TYPE: minio
      DATASTORE_ENDPOINT: http://minio:9000
      DATASTORE_ACCESSKEY: minio
      DATASTORE_SECRETKEY: minio123
      LOGGING_LEVEL_ORG_HIBERNATE_SQL: info
      RP_REQUESTLOGGING: "false"
      AUDIT_LOGGER: "OFF"
      MANAGEMENT_HEALTH_ELASTICSEARCH_ENABLED: "false"
      RP_ENVIRONMENT_VARIABLE_ALLOW_DELETE_ACCOUNT: "false"
      JAVA_OPTS: -Xmx1g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp  -Dcom.sun.management.jmxremote.rmi.port=12349 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false  -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=0.0.0.0
    healthcheck:
      test: curl -f http://0.0.0.0:8585/health
      interval: 60s
      timeout: 30s
      retries: 10
      start_period: 60s
    labels:
      - "traefik.http.middlewares.api-strip-prefix.stripprefix.prefixes=/api"
      - "traefik.http.routers.api.middlewares=api-strip-prefix@docker"
      - "traefik.http.routers.api.rule=PathPrefix(`/api`)"
      - "traefik.http.routers.api.service=api"
      - "traefik.http.services.api.loadbalancer.server.port=8585"
      - "traefik.http.services.api.loadbalancer.server.scheme=http"
      - "traefik.expose=true"
    networks:
      - reportportal
    restart: always

  jobs:
    image: reportportal/service-jobs:5.10.0
    logging:
      <<: *logging
    depends_on:
      rabbitmq:
        condition: service_healthy
      gateway:
        condition: service_started
      postgres:
        condition: service_healthy
    environment:
      ## Double entry moves test logs from PostgreSQL to Elastic-type engines
      ## Ref: https://reportportal.io/blog/double-entry-in-5.7.2
      RP_ELASTICSEARCH_HOST: http://elasticsearch:9200
      RP_ELASTICSEARCH_USERNAME: elastic
      RP_ELASTICSEARCH_PASSWORD:  elastic1q2w3e
      RP_DB_HOST: postgres
      RP_DB_USER: rpuser
      RP_DB_PASS: rppass
      RP_DB_NAME: reportportal
      RP_AMQP_USER: rabbitmq
      RP_AMQP_PASS: rabbitmq
      RP_AMQP_APIUSER: rabbitmq
      RP_AMQP_APIPASS: rabbitmq
      RP_AMQP_ANALYZER-VHOST: analyzer
      DATASTORE_TYPE: minio
      DATASTORE_ENDPOINT: http://minio:9000
      DATASTORE_ACCESSKEY: minio
      DATASTORE_SECRETKEY: minio123
      RP_ENVIRONMENT_VARIABLE_CLEAN_ATTACHMENT_CRON: 0 0 */24 * * *
      RP_ENVIRONMENT_VARIABLE_CLEAN_LOG_CRON: 0 0 */24 * * *
      RP_ENVIRONMENT_VARIABLE_CLEAN_LAUNCH_CRON: 0 0 */24 * * *
      RP_ENVIRONMENT_VARIABLE_CLEAN_STORAGE_CRON: 0 0 */24 * * *
      RP_ENVIRONMENT_VARIABLE_STORAGE_PROJECT_CRON: 0 */5 * * * *
      RP_ENVIRONMENT_VARIABLE_CLEAN_EXPIREDUSER_CRON:  0 0 */24 * * *
      RP_ENVIRONMENT_VARIABLE_CLEAN_EXPIREDUSER_RETENTIONPERIOD: 365
      RP_ENVIRONMENT_VARIABLE_NOTIFICATION_EXPIREDUSER_CRON: 0 0 */24 * * *
      RP_ENVIRONMENT_VARIABLE_CLEAN_STORAGE_CHUNKSIZE: 20000
      RP_PROCESSING_LOG_MAXBATCHSIZE: 2000
      RP_PROCESSING_LOG_MAXBATCHTIMEOUT: 6000
      RP_AMQP_MAXLOGCONSUMER: 1
    healthcheck:
      test: curl -f http://0.0.0.0:8686/health || exit 1
      interval: 60s
      timeout: 30s
      retries: 10
      start_period: 60s
    labels:
      - traefik.http.middlewares.jobs-strip-prefix.stripprefix.prefixes=/jobs
      - traefik.http.routers.jobs.middlewares=jobs-strip-prefix@docker
      - traefik.http.routers.jobs.rule=PathPrefix(`/jobs`)
      - traefik.http.routers.jobs.service=jobs
      - traefik.http.services.jobs.loadbalancer.server.port=8686
      - traefik.http.services.jobs.loadbalancer.server.scheme=http
      - traefik.expose=true
    networks:
      - reportportal
    restart: always

  ui:
    image: reportportal/service-ui:5.10.1
    environment:
      RP_SERVER_PORT: "8080"
    labels:
      - "traefik.http.middlewares.ui-strip-prefix.stripprefix.prefixes=/ui"
      - "traefik.http.routers.ui.middlewares=ui-strip-prefix@docker"
      - "traefik.http.routers.ui.rule=PathPrefix(`/ui`)"
      - "traefik.http.routers.ui.service=ui"
      - "traefik.http.services.ui.loadbalancer.server.port=8080"
      - "traefik.http.services.ui.loadbalancer.server.scheme=http"
      - "traefik.expose=true"
    networks:
      - reportportal
    restart: always

  gateway:
    image: traefik:v2.0.7
    logging:
      <<: *logging
    ports:
      - "8080:8080" # HTTP exposed
      - "8081:8081" # HTTP Administration exposed
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command:
      - --providers.docker=true
      - --providers.docker.constraints=Label(`traefik.expose`, `true`)
      - --entrypoints.web.address=:8080
      - --entrypoints.traefik.address=:8081
      - --api.dashboard=true
      - --api.insecure=true
    networks:
      - reportportal
    restart: always

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1
    logging:
      <<: *logging
    volumes:
      - elasticsearch:/usr/share/elasticsearch/data
    environment:
      - "ES_JAVA_OPTS=-Dlog4j2.formatMsgNoLookups=true"
      - "bootstrap.memory_lock=true"
      - "discovery.type=single-node"
      - "logger.level=INFO"
      - "xpack.security.enabled=true"
      - "ELASTIC_PASSWORD=elastic1q2w3e"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
      # ports:
      # - "9200:9200"
    healthcheck:
      test: ["CMD", "curl","-s" ,"-f", "http://elastic:elastic1q2w3e@localhost:9200/_cat/health"]
    networks:
      - reportportal
    restart: always

  minio:
    image: minio/minio:RELEASE.2020-10-27T04-03-55Z
    logging:
      <<: *logging
    # ports:
    #   - 9000:9000
    volumes:
      ## For unix host
      - storage:/data
      ## For windows host
      # - minio:/data
    environment:
      MINIO_ACCESS_KEY: minio
      MINIO_SECRET_KEY: minio123
    command: server /data
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3
    networks:
      - reportportal
    restart: always

  postgres:
    image: postgres:12-alpine
    logging:
      <<: *logging
    shm_size: '512m'
    environment:
      POSTGRES_USER: rpuser
      POSTGRES_PASSWORD: rppass
      POSTGRES_DB: reportportal
    volumes:
      ## For unix host
      - postgres:/var/lib/postgresql/data
      ## For windows host
      # - postgres:/var/lib/postgresql/data
    ## If you need to access the DB locally. Could be a security risk to expose DB.
    # ports:
    #   - "5432:5432"
    command:
      -c checkpoint_completion_target=0.9
      -c work_mem=96MB
      -c wal_writer_delay=20ms
      -c synchronous_commit=off
      -c wal_buffers=32MB
      -c min_wal_size=2GB
      -c max_wal_size=4GB
    ## Optional, for SSD Data Storage. If you are using the HDD, set up this command to '2'
    #  -c effective_io_concurrency=200
    ## Optional, for SSD Data Storage. If you are using the HDD, set up this command to '4'
    #  -c random_page_cost=1.1
    ## Optional can be scaled. Example for 4 CPU, 16GB RAM instance, where only the database is deployed
    #  -c max_worker_processes=4
    #  -c max_parallel_workers_per_gather=2
    #  -c max_parallel_workers=4
    #  -c shared_buffers=4GB
    #  -c effective_cache_size=12GB
    #  -c maintenance_work_mem=1GB
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -d $$POSTGRES_DB -U $$POSTGRES_USER"]
      interval: 10s
      timeout: 120s
      retries: 10
    networks:
      - reportportal
    restart: always

  rabbitmq:
    image: bitnami/rabbitmq:3.12.2-debian-11-r8
    logging:
      <<: *logging
    # ports:
    #   - "5672:5672"
    #   - "15672:15672"
    environment:
      RABBITMQ_DEFAULT_USER: "rabbitmq"
      RABBITMQ_DEFAULT_PASS: "rabbitmq"
    healthcheck:
      test: ["CMD", "rabbitmqctl", "status"]
      interval: 30s
      timeout: 30s
      retries: 5
    networks:
      - reportportal
    restart: always

volumes:
  elasticsearch:
  storage:
  postgres:

networks:
  reportportal:
Rogatto commented 9 months ago

On reportportal-gateway-1 logs:

time="2024-01-22T14:34:03Z" level=info msg="Configuration loaded from flags." time="2024-01-22T14:58:56Z" level=error msg="accept tcp [::]:8080: use of closed network connection" entryPointName=web time="2024-01-22T14:58:56Z" level=error msg="accept tcp [::]:8081: use of closed network connection" entryPointName=traefik time="2024-01-22T15:01:29Z" level=info msg="Configuration loaded from flags." time="2024-01-22T15:45:44Z" level=error msg="Error while Peeking first byte: read tcp IP->IP: read: connection reset by peer":

Rogatto commented 9 months ago

It is working well:

http://13.51.85.248:8080/ui/#login

I tried to access just http://13.51.85.248:8080/ui then that error

Pink-Bumblebee commented 9 months ago

Resolved by issuer