version: "3.8"
services:
postgres:
image: postgres:16-alpine
container_name: inklog-test-postgres
environment:
POSTGRES_USER: inklog_test
POSTGRES_PASSWORD: inklog_test_pass
POSTGRES_DB: inklog_logs
ports:
- "5432:5432"
volumes:
- postgres_test_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U inklog_test -d inklog_logs"]
interval: 5s
timeout: 5s
retries: 5
start_period: 10s
networks:
- inklog-test-network
restart: "no"
deploy:
resources:
limits:
memory: 512M
mysql:
image: mysql:8.0-oracle
container_name: inklog-test-mysql
environment:
MYSQL_ROOT_PASSWORD: inklog_root_pass
MYSQL_USER: inklog_test
MYSQL_PASSWORD: inklog_test_pass
MYSQL_DATABASE: inklog_logs
ports:
- "3306:3306"
volumes:
- mysql_test_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD:-}"]
interval: 5s
timeout: 5s
retries: 5
start_period: 30s
networks:
- inklog-test-network
restart: "no"
deploy:
resources:
limits:
memory: 512M
command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
redis:
image: redis:7-alpine
container_name: inklog-test-redis
ports:
- "6379:6379"
volumes:
- redis_test_data:/data
command: redis-server --appendonly yes --maxmemory 256mb --maxmemory-policy allkeys-lru
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 5
networks:
- inklog-test-network
restart: "no"
deploy:
resources:
limits:
memory: 256M
localstack:
image: localstack/localstack:3.0
container_name: inklog-test-localstack
environment:
- SERVICES=s3
- DEBUG=1
- LAMBDA_EXECUTOR=local
- DOCKER_HOST=unix:///var/run/docker.sock
- DATA_DIR=/var/lib/localstack
- S3_PROVIDER=neutral
ports:
- "4566:4566" - "4510-4559:4510-4559" volumes:
- localstack_test_data:/var/lib/localstack
- /var/run/docker.sock:/var/run/docker.sock
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:4566/_localstack/health"]
interval: 10s
timeout: 10s
retries: 5
start_period: 30s
networks:
- inklog-test-network
restart: "no"
deploy:
resources:
limits:
memory: 1G
minio:
image: minio/minio:latest
container_name: inklog-test-minio
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin123
ports:
- "9000:9000" - "9001:9001" volumes:
- minio_test_data:/data
command: server /data --console-address ":9001"
healthcheck:
test: ["CMD", "mc", "ready", "local"]
interval: 10s
timeout: 10s
retries: 5
networks:
- inklog-test-network
restart: "no"
deploy:
resources:
limits:
memory: 512M
networks:
inklog-test-network:
driver: bridge
name: inklog_test_network
volumes:
postgres_test_data:
name: inklog_test_postgres_data
mysql_test_data:
name: inklog_test_mysql_data
redis_test_data:
name: inklog_test_redis_data
localstack_test_data:
name: inklog_test_localstack_data
minio_test_data:
name: inklog_test_minio_data