@@ -9,7 +9,7 @@ services:
99 - SYS_ADMIN
1010 # NET_ADMIN required to install iptables egress rules for sandbox uid
1111 # when ENABLE_SANDBOX_NETWORK=true. Restricts sandbox traffic to the
12- # inline allowlist proxy and prevents SSRF to Redis/MinIO /etc.
12+ # inline allowlist proxy and prevents SSRF to Redis/S3 /etc.
1313 - NET_ADMIN
1414 security_opt :
1515 - apparmor:unconfined
@@ -19,7 +19,7 @@ services:
1919 - .env
2020 environment :
2121 - REDIS_HOST=redis
22- - MINIO_ENDPOINT=minio:9000
22+ - S3_ENDPOINT=garage:3900
2323 volumes :
2424 - sandbox-data:/var/lib/code-interpreter/sandboxes
2525 # Persistent skill-deps cache: pip/npm/go/cargo install here when
@@ -30,12 +30,13 @@ services:
3030 # to the mounted files inside the container under /app/ssl.
3131 - ${SSL_CERTS_PATH:-./ssl}:/app/ssl:ro
3232 tmpfs :
33+ - /tmp:size=512m,mode=1777,noexec,nosuid,nodev
3334 - /app/data:size=100m
3435 depends_on :
3536 redis :
3637 condition : service_healthy
37- minio-init :
38- condition : service_completed_successfully
38+ garage :
39+ condition : service_healthy
3940 healthcheck :
4041 test : ["CMD-SHELL", "curl -fs http://localhost:8000/health || curl -fsk https://localhost:8000/health"]
4142 interval : 30s
@@ -63,43 +64,31 @@ services:
6364 timeout : 5s
6465 retries : 5
6566
66- minio :
67- image : minio/minio:latest
68- container_name : code-interpreter-minio
67+ # Garage S3-compatible object storage (replaces MinIO)
68+ garage :
69+ image : dxflrs/garage:v2.3.0
70+ container_name : code-interpreter-garage
6971 restart : unless-stopped
72+ command : /garage server --single-node --default-bucket
7073 ports :
71- - " 127.0.0.1:${MINIO_PORT:-9000}:9000 "
72- - " 127.0.0.1:${MINIO_CONSOLE_PORT:-9001}:9001 "
74+ - " 127.0.0.1:${S3_PORT:-3900}:3900 "
75+ - " 127.0.0.1:${GARAGE_ADMIN_PORT:-3903}:3903 "
7376 environment :
74- MINIO_ROOT_USER : ${MINIO_ACCESS_KEY:-minioadmin }
75- MINIO_ROOT_PASSWORD : ${MINIO_SECRET_KEY:-minioadmin }
76- command : server /data --console-address ":9001"
77+ GARAGE_DEFAULT_ACCESS_KEY : ${S3_ACCESS_KEY:-GKminioadmin0000 }
78+ GARAGE_DEFAULT_SECRET_KEY : ${S3_SECRET_KEY:-minioadminsecret }
79+ GARAGE_DEFAULT_BUCKET : ${S3_BUCKET:-code-interpreter-files}
7780 volumes :
78- - minio-data:/data
81+ - garage-data:/var/lib/garage
82+ - ./garage.toml:/etc/garage.toml
7983 healthcheck :
80- test : ["CMD", "curl ", "-f", "http://localhost:9000/minio/health/live "]
84+ test : ["CMD", "/garage ", "status "]
8185 interval : 10s
8286 timeout : 5s
8387 retries : 5
84-
85- minio-init :
86- image : minio/mc:latest
87- depends_on :
88- minio :
89- condition : service_healthy
90- entrypoint : >
91- /bin/sh -c "
92- mc alias set myminio http://minio:9000 $${MINIO_ACCESS_KEY:-minioadmin} $${MINIO_SECRET_KEY:-minioadmin};
93- mc mb --ignore-existing myminio/$${MINIO_BUCKET:-code-interpreter-files};
94- exit 0;
95- "
96- environment :
97- MINIO_ACCESS_KEY : ${MINIO_ACCESS_KEY:-minioadmin}
98- MINIO_SECRET_KEY : ${MINIO_SECRET_KEY:-minioadmin}
99- MINIO_BUCKET : ${MINIO_BUCKET:-code-interpreter-files}
88+ start_period : 10s
10089
10190volumes :
10291 sandbox-data :
10392 skill-deps :
10493 redis-data :
105- minio -data :
94+ garage -data :
0 commit comments