Repository navigation
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
136 lines (129 loc) · 4.21 KB
/
Copy pathdocker-compose.yml
File metadata and controls
136 lines (129 loc) · 4.21 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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# SQLite FTS5 is supplied by the application's SQLite runtime, not a Docker service.
services:
# Redis - Used across ServiceStack.Redis, ServiceStack.Common, OrmLite, Auth, Cache & Session tests
redis:
image: redis:latest
container_name: servicestack-redis
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 5
# PostgreSQL - Native full-text search is built into PostgreSQL
postgres:
image: postgres:17
container_name: servicestack-postgres
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: p@55wOrd
POSTGRES_DB: postgres
ports:
- "48303:5432"
- "5432:5432"
volumes:
- ./docker/postgres-init:/docker-entrypoint-initdb.d:ro
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres && psql -U postgres -d test -tAc \"SELECT to_tsvector('simple','full text search') @@ to_tsquery('simple','full & text')\" | grep -q t"]
interval: 5s
timeout: 5s
retries: 10
# Microsoft SQL Server 2025 with the optional Full-Text Search package
sqlserver:
platform: linux/amd64
image: servicestack/sqlserver-fts:2025
build:
context: ./docker/sqlserver-fts
args:
UBUNTU_VERSION: "24.04"
MSSQL_REPO_FLAVOR: mssql-server-2025
INSTALL_FTS: "true"
container_name: servicestack-sqlserver
environment:
ACCEPT_EULA: "Y"
MSSQL_SA_PASSWORD: "p@55wOrd"
MSSQL_PID: "Developer"
ports:
- "48501:1433"
- "1433:1433"
volumes:
- ./docker/sqlserver-init:/docker-entrypoint-initdb.d:ro
deploy:
resources:
limits:
cpus: "4"
memory: 4G
reservations:
cpus: "2"
memory: 2G
healthcheck:
test: >-
/opt/mssql-tools18/bin/sqlcmd -b -S localhost -U sa -P "p@55wOrd" -C -d test
-Q "SET NOCOUNT ON; IF COALESCE(CONVERT(int,FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')),0) <> 1 THROW 50000, 'Full-text search is not installed', 1; IF NOT EXISTS (SELECT 1 FROM sys.filegroups WHERE type = 'FX') THROW 50000, 'Test database initialization is incomplete', 1;"
interval: 10s
timeout: 5s
retries: 10
start_period: 30s
# MariaDB / MySQL - InnoDB full-text search is built into MariaDB
mysql:
image: mariadb:latest
container_name: servicestack-mysql
environment:
MYSQL_ROOT_PASSWORD: "p@55wOrd"
MYSQL_DATABASE: "test"
MYSQL_USER: "test"
MYSQL_PASSWORD: "p@55wOrd"
ports:
- "48205:3306"
- "3306:3306"
volumes:
- ./docker/mysql-init:/docker-entrypoint-initdb.d:ro
healthcheck:
test: ["CMD-SHELL", "mariadb -N -s -h localhost -u root --password=p@55wOrd information_schema -e \"SELECT COUNT(*) FROM statistics WHERE table_schema='test' AND table_name='fts_health' AND index_name='ix_fts_health_content' AND index_type='FULLTEXT'\" | grep -qx 1"]
interval: 5s
timeout: 5s
retries: 10
start_period: 10s
# Firebird - Used in OrmLite Community Provider tests
firebird:
image: jacobalberty/firebird:v4.0.0
container_name: servicestack-firebird
environment:
ISC_PASSWORD: "p@55wOrd"
FIREBIRD_USER: "test"
FIREBIRD_PASSWORD: "p@55wOrd"
FIREBIRD_DATABASE: "test.gdb"
EnableLegacyClientAuth: "true"
ports:
- "48101:3050"
- "3050:3050"
# RabbitMQ - Used in ServiceStack MQ / Messaging integration tests
rabbitmq:
image: rabbitmq:3-management
container_name: servicestack-rabbitmq
environment:
RABBITMQ_DEFAULT_USER: "guest"
RABBITMQ_DEFAULT_PASS: "guest"
RABBITMQ_DEFAULT_VHOST: "/"
ports:
- "45672:5672"
- "5672:5672"
- "41672:15672"
- "15672:15672"
healthcheck:
test: ["CMD", "rabbitmq-diagnostics", "-q", "ping"]
interval: 10s
timeout: 5s
retries: 5
# DynamoDB Local - Used in ServiceStack.Aws DynamoDB integration tests
dynamodb:
image: amazon/dynamodb-local:latest
container_name: servicestack-dynamodb
command: "-jar DynamoDBLocal.jar -inMemory -sharedDb"
ports:
- "48000:8000"
- "8000:8000"
volumes:
postgres_data: