-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathdocker-compose.test-stack.yml
More file actions
105 lines (100 loc) · 3.63 KB
/
docker-compose.test-stack.yml
File metadata and controls
105 lines (100 loc) · 3.63 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
name: agentifui-test-stack
services:
postgres:
image: postgres:18-alpine
container_name: agentifui-test-postgres
restart: unless-stopped
environment:
POSTGRES_DB: ${TEST_PG_DB:-agentifui}
POSTGRES_USER: ${TEST_PG_USER:-agentif}
POSTGRES_PASSWORD: ${TEST_PG_PASSWORD:-agentif}
TZ: UTC
ports:
- '${TEST_PG_PORT:-5432}:5432'
volumes:
- test_stack_pg_data:/var/lib/postgresql/data
healthcheck:
test:
[
'CMD-SHELL',
'pg_isready -U ${TEST_PG_USER:-agentif} -d ${TEST_PG_DB:-agentifui}',
]
interval: 5s
timeout: 5s
retries: 20
redis:
image: redis:7.4-alpine
container_name: agentifui-test-redis
restart: unless-stopped
command: ['redis-server', '--appendonly', 'yes', '--save', '60', '1000']
ports:
- '${TEST_REDIS_PORT:-6379}:6379'
volumes:
- test_stack_redis_data:/data
healthcheck:
test: ['CMD', 'redis-cli', 'ping']
interval: 5s
timeout: 5s
retries: 20
minio:
image: minio/minio:latest
container_name: agentifui-test-minio
restart: unless-stopped
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: ${TEST_MINIO_ROOT_USER:-minioadmin}
MINIO_ROOT_PASSWORD: ${TEST_MINIO_ROOT_PASSWORD:-minioadmin}
MINIO_BROWSER_REDIRECT_URL: http://127.0.0.1:${TEST_MINIO_CONSOLE_PORT:-9001}
# Reduce background scan pressure and tolerate transient slow storage on dev host.
MINIO_SCANNER_SPEED: ${TEST_MINIO_SCANNER_SPEED:-slowest}
MINIO_DRIVE_MAX_TIMEOUT: ${TEST_MINIO_DRIVE_MAX_TIMEOUT:-2m}
ports:
- '${TEST_MINIO_API_PORT:-9000}:9000'
- '${TEST_MINIO_CONSOLE_PORT:-9001}:9001'
volumes:
- test_stack_minio_data:/data
minio-init:
image: minio/mc:latest
container_name: agentifui-test-minio-init
restart: 'no'
depends_on:
- minio
environment:
MINIO_ROOT_USER: ${TEST_MINIO_ROOT_USER:-minioadmin}
MINIO_ROOT_PASSWORD: ${TEST_MINIO_ROOT_PASSWORD:-minioadmin}
TEST_MINIO_BUCKET: ${TEST_MINIO_BUCKET:-agentifui}
TEST_MINIO_PUBLIC_READ: ${TEST_MINIO_PUBLIC_READ:-1}
TEST_MINIO_CORS_ALLOWED_ORIGINS: ${TEST_MINIO_CORS_ALLOWED_ORIGINS:-http://127.0.0.1:3000,http://localhost:3000,http://127.0.0.1:3319,http://127.0.0.1:3320}
entrypoint: /bin/sh
command:
- -c
- |
set -e
until mc alias set local http://minio:9000 "$MINIO_ROOT_USER" "$MINIO_ROOT_PASSWORD"; do
echo "Waiting for MinIO..."
sleep 1
done
mc mb --ignore-existing "local/$TEST_MINIO_BUCKET"
if [ "${TEST_MINIO_PUBLIC_READ}" = "1" ]; then
mc anonymous set download "local/$TEST_MINIO_BUCKET" >/dev/null 2>&1 || true
else
mc anonymous set none "local/$TEST_MINIO_BUCKET" >/dev/null 2>&1 || true
fi
ORIGINS_JSON=$(printf '%s' "$TEST_MINIO_CORS_ALLOWED_ORIGINS" | awk -F',' '{for(i=1;i<=NF;i++){gsub(/^[[:space:]]+|[[:space:]]+$/,"",$i);if(length($i)>0){printf "%s\"%s\"", (count++>0?",":""), $i}}}')
cat > /tmp/minio-cors.json <<EOF
[
{
"AllowedOrigins": [${ORIGINS_JSON}],
"AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
"AllowedHeaders": ["*"],
"ExposeHeaders": ["ETag", "Content-Length", "Content-Type"],
"MaxAgeSeconds": 3600
}
]
EOF
mc cors set "local/$TEST_MINIO_BUCKET" /tmp/minio-cors.json >/dev/null 2>&1 || true
echo "MinIO bucket initialized: $TEST_MINIO_BUCKET"
volumes:
test_stack_pg_data:
test_stack_redis_data:
test_stack_minio_data: