-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
57 lines (53 loc) · 1.67 KB
/
docker-compose.yml
File metadata and controls
57 lines (53 loc) · 1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# SPDX-FileCopyrightText: 2026 ArcheBase
#
# SPDX-License-Identifier: MulanPSL-2.0
# Docker Compose configuration for robocodec S3 testing.
#
# This file sets up MinIO for S3-compatible object storage testing.
#
# Usage:
# docker compose up -d # Start MinIO
# docker compose down # Stop MinIO
# docker compose down -v # Stop and remove volumes
# docker compose logs -f minio # View MinIO logs
services:
# MinIO for S3-compatible object storage
minio:
image: minio/minio:latest
container_name: robocodec-minio
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
ports:
- "9000:9000" # S3 API
- "9001:9001" # Web Console
volumes:
- minio_data:/data
healthcheck:
# Healthcheck verifies bucket exists (minio-init must create it first)
test: ["CMD-SHELL", "mc alias set local http://localhost:9000 minioadmin minioadmin && mc ls local/test-fixtures || exit 1"]
interval: 5s
timeout: 5s
retries: 30
start_period: 5s
# MinIO client to create buckets
minio-init:
image: minio/mc:latest
container_name: robocodec-minio-init
restart: "no"
depends_on:
minio:
condition: service_started # Start after MinIO starts, not healthy
entrypoint: >
/bin/sh -c "
echo 'Creating S3 buckets...';
sleep 3;
mc alias set myminio http://minio:9000 minioadmin minioadmin;
mc mb myminio/test-fixtures --ignore-existing;
mc anonymous set download myminio/test-fixtures;
echo 'Buckets created successfully';
exit 0;
"
volumes:
minio_data: