services: mysql: image: mysql:8 container_name: fennec-mysql environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: fennecpro MYSQL_INNODB_DEFAULT_ROW_FORMAT: DYNAMIC # ← add this command: - --innodb-default-row-format=dynamic # ← add this - --innodb-file-per-table=1 # ← add this volumes: - mysql-data:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-uroot", "-ppassword"] interval: 10s timeout: 5s retries: 10 start_period: 30s networks: - fennec backend: build: context: . dockerfile: fennec-hub-multi-tenant-shared-db/Dockerfile container_name: fennec-backend environment: SPRING_PROFILES_ACTIVE: custom SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/fennecpro?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: password # Honor X-Forwarded-* from nginx so Spring reconstructs the original URL # (http://localhost) instead of seeing http://backend:8080. SERVER_FORWARD_HEADERS_STRATEGY: framework # CORS allow-list — frontend served via nginx on http://localhost (port 80). # Keep :4200 so the non-dockerized Angular dev server still works. FENNEC_HUB_SECURITY_CORS_ALLOWED_ORIGINS: "http://localhost,http://localhost:4200,https://hub.fennecsm.com" depends_on: mysql: condition: service_healthy ports: - "9999:8080" volumes: - /home/fennec/hub:/home/fennec/hub #expose: # - "8080" networks: - fennec frontend: build: context: ./fennec-hub-angular-ui dockerfile: Dockerfile container_name: fennec-frontend ports: - "8888:80" depends_on: - backend networks: - fennec volumes: mysql-data: networks: fennec: driver: bridge