services: app: image: ${REGISTRY_URL}/${NAMESPACE}/${REPO_NAME}:${IMAGE_TAG:-latest} container_name: skamp-app restart: unless-stopped depends_on: postgres: condition: service_healthy ports: - "${APP_PORT:-8080}:8080" environment: # Spring Boot Profile SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE-prod} # Database Configuration SPRING_DATASOURCE_URL: jdbc:postgresql://${POSTGRES_HOST:-localhost}:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-skamp} SPRING_DATASOURCE_USERNAME: ${POSTGRES_USER:-dev} SPRING_DATASOURCE_PASSWORD: ${POSTGRES_PASSWORD:-dev} SPRING_JPA_HIBERNATE_DDL_AUTO: ${HIBERNATE_DDL_AUTO:-update} # OAuth2/Keycloak Configuration SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_ISSUER_URI: ${KEYCLOAK_ISSUER_URI:-http://localhost:8280/realms/skamp} #SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_JWK_SET_URI: ${KEYCLOAK_JWK_SET_URI} # CORS Configuration CORS_ALLOWED_ORIGINS: ${CORS_ALLOWED_ORIGINS:-http://localhost:3000} # S3 Configuration S3_ACCESS_KEY: ${MINIO_ACCESS_KEY:-dev} S3_SECRET_KEY: ${MINIO_SECRET_KEY:-dev123456} S3_ENDPOINT: ${MINIO_ENDPOINT:-http://localhost:9000} # Application Configuration SERVER_PORT: 8080 JAVA_OPTS: ${JAVA_OPTS:--Xmx512m -Xms256m} volumes: - app_logs:/app/logs networks: - skamp-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/actuator/health"] interval: 30s timeout: 10s retries: 3 start_period: 60s volumes: postgres_data: driver: local app_logs: driver: local networks: skamp-network: driver: bridge