@@ -7,114 +7,45 @@ services:
77 ports :
88 - " ${SERVER_PORT:-8080}:8080"
99 environment :
10- - SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE}
11- - SPRING_DATASOURCE_URL=${SPRING_DATASOURCE_URL}
12- - SPRING_DATASOURCE_USERNAME=${SPRING_DATASOURCE_USERNAME}
13- - SPRING_DATASOURCE_PASSWORD=${SPRING_DATASOURCE_PASSWORD}
14- - SPRING_SECURITY_USER_NAME=${SPRING_SECURITY_USER}
15- - SPRING_SECURITY_USER_PASSWORD=${SPRING_SECURITY_PASSWORD}
16- - REDIS_HOST=${REDIS_HOST}
17- - REDIS_PORT=${REDIS_PORT}
18- - MINIO_ENDPOINT=${MINIO_ENDPOINT}
19- - MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY}
20- - MINIO_SECRET_KEY=${MINIO_SECRET_KEY}
21- - MINIO_BUCKET_IMAGES=${MINIO_BUCKET_IMAGES}
22- - MINIO_BUCKET_MODELS=${MINIO_BUCKET_MODELS}
10+ # Profile para configuración cloud
11+ - SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE:-cloud}
12+
13+ # Database connection (PostgreSQL Cloud - Render)
14+ - SPRING_DATASOURCE_RENDER_URL=${SPRING_DATASOURCE_RENDER_URL}
15+ - SPRING_DATASOURCE_RENDER_USERNAME=${SPRING_DATASOURCE_RENDER_USERNAME}
16+ - SPRING_DATASOURCE_RENDER_PASSWORD=${SPRING_DATASOURCE_RENDER_PASSWORD}
17+
18+ # Security
19+ - SPRING_SECURITY_USER=${SPRING_SECURITY_USER}
20+ - SPRING_SECURITY_PASSWORD=${SPRING_SECURITY_PASSWORD}
21+
22+ # AWS S3 Configuration
23+ - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
24+ - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
25+ - AWS_REGION=${AWS_REGION}
26+ - AWS_BUCKET_NAME=${AWS_BUCKET_NAME}
27+
28+ # JVM and Logging
2329 - JAVA_OPTS=${JAVA_OPTS}
24- depends_on :
25- postgres :
26- condition : service_healthy
27- minio :
28- condition : service_healthy
30+ - LOG_LEVEL_ROOT=${LOG_LEVEL_ROOT}
31+ - LOG_LEVEL_OUTFITLAB=${LOG_LEVEL_OUTFITLAB}
32+
33+ # File upload limits
34+ - MAX_FILE_SIZE=${MAX_FILE_SIZE}
35+ - MAX_REQUEST_SIZE=${MAX_REQUEST_SIZE}
36+
37+ # API Keys
38+ - FASHION_IA_SECRET_KEY=${FASHION_IA_SECRET_KEY}
39+
2940 restart : unless-stopped
3041 networks :
3142 - outfitlab-network
32-
33- # ===== PostgreSQL Database =====
34- postgres :
35- image : postgres:15-alpine
36- environment :
37- - POSTGRES_DB=${POSTGRES_DB}
38- - POSTGRES_USER=${POSTGRES_ROOT_USER}
39- - POSTGRES_PASSWORD=${POSTGRES_ROOT_PASSWORD}
40- ports :
41- - " 5432:5432"
42- volumes :
43- - postgres_data:/var/lib/postgresql/data
44- - ./db/init:/docker-entrypoint-initdb.d
45- healthcheck :
46- test : ["CMD-SHELL", "pg_isready -U ${POSTGRES_ROOT_USER} -d ${POSTGRES_DB}"]
47- interval : 10s
48- timeout : 5s
49- retries : 5
50- restart : unless-stopped
51- networks :
52- - outfitlab-network
53-
54- # ===== Redis Cache (para queue y cache) =====
55- redis :
56- image : redis:7-alpine
57- ports :
58- - " 6379:6379"
59- command : redis-server --appendonly yes
60- volumes :
61- - redis_data:/data
6243 healthcheck :
63- test : ["CMD", "redis-cli", "ping"]
64- interval : 10s
65- timeout : 3s
66- retries : 5
67- restart : unless-stopped
68- networks :
69- - outfitlab-network
70-
71- # ===== MinIO Object Storage (S3-compatible) =====
72- minio :
73- image : minio/minio:latest
74- ports :
75- - " 9000:9000" # API
76- - " 9001:9001" # Console Web UI
77- environment :
78- - MINIO_ROOT_USER=${MINIO_ROOT_USER}
79- - MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD}
80- command : server /data --console-address ":9001"
81- volumes :
82- - minio_data:/data
83- healthcheck :
84- test : ["CMD", "mc", "ready", "local"]
44+ test : ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/actuator/health"]
8545 interval : 30s
86- timeout : 20s
46+ timeout : 10s
8747 retries : 3
88- restart : unless-stopped
89- networks :
90- - outfitlab-network
91-
92- # ===== MinIO Client (crear buckets iniciales) =====
93- minio-init :
94- image : minio/mc:latest
95- depends_on :
96- minio :
97- condition : service_healthy
98- entrypoint : >
99- /bin/sh -c "
100- mc alias set myminio http://minio:9000 ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD};
101- mc mb myminio/outfitlab-images --ignore-existing;
102- mc mb myminio/outfitlab-models --ignore-existing;
103- mc anonymous set download myminio/outfitlab-images;
104- mc anonymous set download myminio/outfitlab-models;
105- echo 'MinIO buckets created successfully';
106- "
107- networks :
108- - outfitlab-network
109-
110- # ===== Volumes =====
111- volumes :
112- postgres_data :
113- driver : local
114- redis_data :
115- driver : local
116- minio_data :
117- driver : local
48+ start_period : 40s
11849
11950# ===== Networks =====
12051networks :
0 commit comments