version: "3.8"
services:
postgres:
image: postgres:16-alpine
container_name: inklog-test-postgres
environment:
POSTGRES_USER: ${POSTGRES_USER:-inklog}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-inklog}
POSTGRES_DB: ${POSTGRES_DB:-inklog_test}
ports:
- "5432:5432"
volumes:
- postgres_test_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER:-inklog} -d $${POSTGRES_DB:-inklog_test}"]
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: ${MYSQL_ROOT_PASSWORD:-inklog_root}
MYSQL_USER: ${MYSQL_USER:-inklog}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-inklog}
MYSQL_DATABASE: ${MYSQL_DATABASE:-inklog_test}
ports:
- "3306:3306"
volumes:
- mysql_test_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD:-inklog_root}"]
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
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