feat: Fix discovery system critical issues
Resolved multiple critical discovery system issues: ## Discovery System Fixes - Fixed console commands not being discovered on first run - Implemented fallback discovery for empty caches - Added context-aware caching with separate cache keys - Fixed object serialization preventing __PHP_Incomplete_Class ## Cache System Improvements - Smart caching that only caches meaningful results - Separate caches for different execution contexts (console, web, test) - Proper array serialization/deserialization for cache compatibility - Cache hit logging for debugging and monitoring ## Object Serialization Fixes - Fixed DiscoveredAttribute serialization with proper string conversion - Sanitized additional data to prevent object reference issues - Added fallback for corrupted cache entries ## Performance & Reliability - All 69 console commands properly discovered and cached - 534 total discovery items successfully cached and restored - No more __PHP_Incomplete_Class cache corruption - Improved error handling and graceful fallbacks ## Testing & Quality - Fixed code style issues across discovery components - Enhanced logging for better debugging capabilities - Improved cache validation and error recovery Ready for production deployment with stable discovery system. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
151
deployment/infrastructure/roles/docker-runtime/defaults/main.yml
Normal file
151
deployment/infrastructure/roles/docker-runtime/defaults/main.yml
Normal file
@@ -0,0 +1,151 @@
|
||||
---
|
||||
# Docker Runtime Role Default Variables
|
||||
|
||||
# Docker Installation
|
||||
docker_edition: ce
|
||||
docker_version: "latest"
|
||||
docker_channel: stable
|
||||
docker_compose_version: "2.20.0"
|
||||
|
||||
# Repository Configuration
|
||||
docker_apt_arch: amd64
|
||||
docker_apt_repository: "deb [arch={{ docker_apt_arch }}] https://download.docker.com/linux/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} {{ docker_channel }}"
|
||||
docker_apt_gpg_key: "https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg"
|
||||
|
||||
# Docker Daemon Configuration
|
||||
docker_daemon_config:
|
||||
# Security settings
|
||||
userland-proxy: false
|
||||
live-restore: true
|
||||
icc: false
|
||||
userns-remap: default
|
||||
no-new-privileges: true
|
||||
seccomp-profile: /etc/docker/seccomp-default.json
|
||||
|
||||
# Logging
|
||||
log-driver: json-file
|
||||
log-opts:
|
||||
max-size: 50m
|
||||
max-file: "5"
|
||||
|
||||
# Storage
|
||||
storage-driver: overlay2
|
||||
|
||||
# Network security
|
||||
bridge: none
|
||||
ip-forward: false
|
||||
ip-masq: false
|
||||
iptables: false
|
||||
ipv6: false
|
||||
|
||||
# Resource limits
|
||||
default-ulimits:
|
||||
nproc:
|
||||
hard: 65536
|
||||
soft: 65536
|
||||
nofile:
|
||||
hard: 65536
|
||||
soft: 65536
|
||||
|
||||
# Registry security
|
||||
insecure-registries: []
|
||||
registry-mirrors: []
|
||||
|
||||
# Experimental features
|
||||
experimental: false
|
||||
|
||||
# Docker Service Configuration
|
||||
docker_service_state: started
|
||||
docker_service_enabled: true
|
||||
docker_restart_handler_state: restarted
|
||||
|
||||
# User Management
|
||||
docker_users: []
|
||||
docker_group: docker
|
||||
|
||||
# PHP 8.4 Specific Configuration
|
||||
php_version: "8.4"
|
||||
php_docker_image: "php:8.4-fpm-alpine"
|
||||
php_extensions:
|
||||
- mysqli
|
||||
- pdo_mysql
|
||||
- opcache
|
||||
- redis
|
||||
- memcached
|
||||
- intl
|
||||
- gd
|
||||
- zip
|
||||
- bcmath
|
||||
- soap
|
||||
- xml
|
||||
- curl
|
||||
- json
|
||||
|
||||
# Docker Compose Configuration
|
||||
docker_compose_projects: []
|
||||
docker_compose_path: /opt/docker-compose
|
||||
|
||||
# Security Profiles
|
||||
docker_security_profiles:
|
||||
- name: default-seccomp
|
||||
path: /etc/docker/seccomp-default.json
|
||||
- name: framework-apparmor
|
||||
path: /etc/apparmor.d/docker-framework
|
||||
|
||||
# Network Configuration
|
||||
docker_networks:
|
||||
- name: framework-network
|
||||
driver: bridge
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 172.20.0.0/16
|
||||
gateway: 172.20.0.1
|
||||
options:
|
||||
com.docker.network.bridge.enable_icc: "false"
|
||||
com.docker.network.bridge.enable_ip_masquerade: "false"
|
||||
|
||||
# Volume Configuration
|
||||
docker_volumes:
|
||||
- name: framework-app-data
|
||||
driver: local
|
||||
- name: framework-db-data
|
||||
driver: local
|
||||
- name: framework-logs
|
||||
driver: local
|
||||
|
||||
# Health Check Configuration
|
||||
docker_health_check_interval: 30s
|
||||
docker_health_check_timeout: 10s
|
||||
docker_health_check_retries: 3
|
||||
docker_health_check_start_period: 60s
|
||||
|
||||
# Backup Configuration
|
||||
docker_backup_enabled: "{{ backup_enabled | default(false) }}"
|
||||
docker_backup_schedule: "0 2 * * *" # Daily at 2 AM
|
||||
docker_backup_retention: 7
|
||||
|
||||
# Monitoring Configuration
|
||||
docker_monitoring_enabled: "{{ monitoring_enabled | default(true) }}"
|
||||
docker_metrics_enabled: true
|
||||
docker_metrics_address: "0.0.0.0:9323"
|
||||
|
||||
# Resource Limits (per environment)
|
||||
docker_resource_limits:
|
||||
production:
|
||||
memory: "{{ docker_memory_limit | default('4g') }}"
|
||||
cpus: "{{ docker_cpu_limit | default('2.0') }}"
|
||||
pids: 1024
|
||||
staging:
|
||||
memory: "{{ docker_memory_limit | default('2g') }}"
|
||||
cpus: "{{ docker_cpu_limit | default('1.0') }}"
|
||||
pids: 512
|
||||
development:
|
||||
memory: "{{ docker_memory_limit | default('1g') }}"
|
||||
cpus: "{{ docker_cpu_limit | default('0.5') }}"
|
||||
pids: 256
|
||||
|
||||
# Container Security Options
|
||||
docker_security_opts:
|
||||
- no-new-privileges:true
|
||||
- seccomp:unconfined
|
||||
- apparmor:docker-framework
|
||||
Reference in New Issue
Block a user