| 1 | services: |
| 2 | postgres: |
| 3 | image: ${POSTGRES_IMAGE:-postgres:16} |
| 4 | environment: |
| 5 | POSTGRES_USER: netdata |
| 6 | POSTGRES_PASSWORD: netdata |
| 7 | POSTGRES_DB: netdata |
| 8 | command: ["postgres", "-c", "shared_preload_libraries=${POSTGRES_PRELOAD_LIBRARIES:-pg_stat_statements}"] |
| 9 | ports: |
| 10 | - "${POSTGRES_PORT:-5432}:5432" |
| 11 | volumes: |
| 12 | - ./seed/postgres/init.sql:/docker-entrypoint-initdb.d/init.sql:ro |
| 13 | healthcheck: |
| 14 | test: ["CMD-SHELL", "pg_isready -U netdata -d netdata"] |
| 15 | interval: 5s |
| 16 | timeout: 5s |
| 17 | retries: 10 |
| 18 | |
| 19 | mysql: |
| 20 | image: ${MYSQL_IMAGE:-mysql:8.0} |
| 21 | environment: |
| 22 | MYSQL_ROOT_PASSWORD: rootpw |
| 23 | MYSQL_DATABASE: netdata |
| 24 | MYSQL_USER: netdata |
| 25 | MYSQL_PASSWORD: netdata |
| 26 | MARIADB_ROOT_PASSWORD: rootpw |
| 27 | MARIADB_DATABASE: netdata |
| 28 | MARIADB_USER: netdata |
| 29 | MARIADB_PASSWORD: netdata |
| 30 | command: ["--performance_schema=ON"] |
| 31 | ports: |
| 32 | - "${MYSQL_PORT:-3306}:3306" |
| 33 | volumes: |
| 34 | - ./seed/mysql/init.sql:/docker-entrypoint-initdb.d/init.sql:ro |
| 35 | healthcheck: |
| 36 | test: ["CMD-SHELL", "if command -v mysqladmin >/dev/null 2>&1; then mysqladmin ping -h 127.0.0.1 -u root -p$$MYSQL_ROOT_PASSWORD > /dev/null; elif command -v mariadb-admin >/dev/null 2>&1; then mariadb-admin ping -h 127.0.0.1 -u root -p$$MYSQL_ROOT_PASSWORD > /dev/null; else exit 127; fi"] |
| 37 | interval: 5s |
| 38 | timeout: 5s |
| 39 | retries: 10 |
| 40 | |
| 41 | mssql: |
| 42 | image: ${MSSQL_IMAGE:-mcr.microsoft.com/mssql/server:2022-latest} |
| 43 | environment: |
| 44 | ACCEPT_EULA: "Y" |
| 45 | MSSQL_SA_PASSWORD: "Netdata123!" |
| 46 | ports: |
| 47 | - "${MSSQL_PORT:-1433}:1433" |
| 48 | healthcheck: |
| 49 | test: ["CMD-SHELL", "if [ -x /opt/mssql-tools18/bin/sqlcmd ]; then /opt/mssql-tools18/bin/sqlcmd -C -S localhost -U sa -P $$MSSQL_SA_PASSWORD -Q \"SELECT 1\" > /dev/null; else /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $$MSSQL_SA_PASSWORD -Q \"SELECT 1\" > /dev/null; fi"] |
| 50 | interval: 10s |
| 51 | timeout: 5s |
| 52 | retries: 12 |
| 53 | |
| 54 | mssql-init: |
| 55 | image: mcr.microsoft.com/mssql-tools |
| 56 | depends_on: |
| 57 | mssql: |
| 58 | condition: service_healthy |
| 59 | environment: |
| 60 | MSSQL_SA_PASSWORD: "Netdata123!" |
| 61 | volumes: |
| 62 | - ./seed/mssql/init.sql:/seed/init.sql:ro |
| 63 | - ./seed/mssql/init.sh:/seed/init.sh:ro |
| 64 | entrypoint: ["/bin/bash", "/seed/init.sh"] |
| 65 | |
| 66 | mongo: |
| 67 | image: mongo:6 |
| 68 | environment: |
| 69 | MONGO_INITDB_ROOT_USERNAME: root |
| 70 | MONGO_INITDB_ROOT_PASSWORD: rootpw |
| 71 | ports: |
| 72 | - "${MONGO_PORT:-27017}:27017" |
| 73 | volumes: |
| 74 | - ./seed/mongodb/init.js:/docker-entrypoint-initdb.d/init.js:ro |
| 75 | healthcheck: |
| 76 | test: ["CMD", "mongosh", "--quiet", "--username", "root", "--password", "rootpw", "--authenticationDatabase", "admin", "--eval", "db.runCommand({ping:1})"] |
| 77 | interval: 5s |
| 78 | timeout: 5s |
| 79 | retries: 10 |
| 80 | |
| 81 | mongo-init: |
| 82 | image: mongo:6 |
| 83 | depends_on: |
| 84 | mongo: |
| 85 | condition: service_healthy |
| 86 | environment: |
| 87 | MONGO_INITDB_ROOT_USERNAME: root |
| 88 | MONGO_INITDB_ROOT_PASSWORD: rootpw |
| 89 | volumes: |
| 90 | - ./seed/mongodb/init.js:/seed/init.js:ro |
| 91 | - ./seed/mongodb/init.sh:/seed/init.sh:ro |
| 92 | entrypoint: ["/bin/bash", "/seed/init.sh"] |
| 93 | |
| 94 | redis: |
| 95 | image: redis:7 |
| 96 | ports: |
| 97 | - "${REDIS_PORT:-6379}:6379" |
| 98 | healthcheck: |
| 99 | test: ["CMD", "redis-cli", "ping"] |
| 100 | interval: 5s |
| 101 | timeout: 5s |
| 102 | retries: 10 |
| 103 | |
| 104 | redis-init: |
| 105 | image: redis:7 |
| 106 | depends_on: |
| 107 | redis: |
| 108 | condition: service_healthy |
| 109 | volumes: |
| 110 | - ./seed/redis/init.sh:/seed/init.sh:ro |
| 111 | entrypoint: ["/bin/bash", "/seed/init.sh"] |
| 112 | |
| 113 | clickhouse: |
| 114 | image: clickhouse/clickhouse-server:24.3 |
| 115 | environment: |
| 116 | CLICKHOUSE_USER: default |
| 117 | CLICKHOUSE_PASSWORD: netdata |
| 118 | CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: "1" |
| 119 | ports: |
| 120 | - "${CLICKHOUSE_HTTP_PORT:-8123}:8123" |
| 121 | healthcheck: |
| 122 | test: ["CMD-SHELL", "clickhouse-client --host 127.0.0.1 --user \"$${CLICKHOUSE_USER}\" --password \"$${CLICKHOUSE_PASSWORD}\" --query 'SELECT 1' > /dev/null"] |
| 123 | interval: 5s |
| 124 | timeout: 5s |
| 125 | retries: 10 |
| 126 | |
| 127 | clickhouse-init: |
| 128 | image: clickhouse/clickhouse-server:24.3 |
| 129 | depends_on: |
| 130 | clickhouse: |
| 131 | condition: service_healthy |
| 132 | environment: |
| 133 | CH_USER: default |
| 134 | CH_PASSWORD: netdata |
| 135 | volumes: |
| 136 | - ./seed/clickhouse/init.sh:/seed/init.sh:ro |
| 137 | entrypoint: ["/bin/bash", "/seed/init.sh"] |
| 138 | |
| 139 | elasticsearch: |
| 140 | image: docker.elastic.co/elasticsearch/elasticsearch:8.12.0 |
| 141 | environment: |
| 142 | discovery.type: single-node |
| 143 | xpack.security.enabled: "false" |
| 144 | ES_JAVA_OPTS: "-Xms512m -Xmx512m" |
| 145 | ports: |
| 146 | - "${ELASTICSEARCH_PORT:-9200}:9200" |
| 147 | healthcheck: |
| 148 | test: ["CMD-SHELL", "curl -fsS http://localhost:9200/_cluster/health?wait_for_status=yellow&timeout=5s > /dev/null"] |
| 149 | interval: 10s |
| 150 | timeout: 5s |
| 151 | retries: 12 |
| 152 | |
| 153 | elasticsearch-init: |
| 154 | image: curlimages/curl:8.5.0 |
| 155 | depends_on: |
| 156 | elasticsearch: |
| 157 | condition: service_healthy |
| 158 | volumes: |
| 159 | - ./seed/elasticsearch/init.sh:/seed/init.sh:ro |
| 160 | entrypoint: ["/bin/sh", "/seed/init.sh"] |
| 161 | |
| 162 | elasticsearch-searcher: |
| 163 | image: curlimages/curl:8.5.0 |
| 164 | depends_on: |
| 165 | elasticsearch-init: |
| 166 | condition: service_completed_successfully |
| 167 | volumes: |
| 168 | - ./seed/elasticsearch/searcher.sh:/seed/searcher.sh:ro |
| 169 | entrypoint: ["/bin/sh", "/seed/searcher.sh"] |
| 170 | |
| 171 | couchbase: |
| 172 | image: couchbase/server:7.2.5 |
| 173 | ports: |
| 174 | - "${COUCHBASE_HTTP_PORT:-8091}:8091" |
| 175 | - "${COUCHBASE_QUERY_PORT:-8093}:8093" |
| 176 | ulimits: |
| 177 | nofile: |
| 178 | soft: 200000 |
| 179 | hard: 200000 |
| 180 | healthcheck: |
| 181 | test: ["CMD-SHELL", "code=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:8091/pools); [ \"$$code\" = \"200\" ] || [ \"$$code\" = \"401\" ]"] |
| 182 | interval: 10s |
| 183 | timeout: 5s |
| 184 | retries: 20 |
| 185 | |
| 186 | couchbase-init: |
| 187 | image: couchbase/server:7.2.5 |
| 188 | depends_on: |
| 189 | couchbase: |
| 190 | condition: service_healthy |
| 191 | environment: |
| 192 | CB_HOST: couchbase |
| 193 | CB_ADMIN: Administrator |
| 194 | CB_PASS: password |
| 195 | volumes: |
| 196 | - ./seed/couchbase/init.sh:/seed/init.sh:ro |
| 197 | entrypoint: ["/bin/bash", "/seed/init.sh"] |
| 198 | |
| 199 | proxysql: |
| 200 | image: proxysql/proxysql:2.6.6 |
| 201 | ports: |
| 202 | - "${PROXYSQL_ADMIN_PORT:-6032}:6032" |
| 203 | - "${PROXYSQL_MYSQL_PORT:-6033}:6033" |
| 204 | volumes: |
| 205 | - proxysql-data:/var/lib/proxysql |
| 206 | - ./seed/proxysql/proxysql.cnf:/etc/proxysql.cnf:ro |
| 207 | |
| 208 | proxysql-init: |
| 209 | image: mysql:8.0 |
| 210 | network_mode: "service:proxysql" |
| 211 | depends_on: |
| 212 | proxysql: |
| 213 | condition: service_started |
| 214 | mysql: |
| 215 | condition: service_healthy |
| 216 | environment: |
| 217 | PROXY_HOST: 127.0.0.1 |
| 218 | ADMIN_USER: admin |
| 219 | ADMIN_PASS: admin |
| 220 | BACKEND_HOST: mysql |
| 221 | BACKEND_PORT: 3306 |
| 222 | volumes: |
| 223 | - ./seed/proxysql/init.sh:/seed/init.sh:ro |
| 224 | entrypoint: ["/bin/bash", "/seed/init.sh"] |
| 225 | |
| 226 | cockroachdb: |
| 227 | image: cockroachdb/cockroach:v24.1.0 |
| 228 | command: |
| 229 | [ |
| 230 | "start-single-node", |
| 231 | "--insecure", |
| 232 | "--http-addr", |
| 233 | "0.0.0.0:8080", |
| 234 | "--listen-addr", |
| 235 | "127.0.0.1:26257", |
| 236 | "--sql-addr", |
| 237 | "0.0.0.0:26258" |
| 238 | ] |
| 239 | ports: |
| 240 | - "${COCKROACH_HTTP_PORT:-8080}:8080" |
| 241 | - "${COCKROACH_SQL_PORT:-26258}:26258" |
| 242 | healthcheck: |
| 243 | test: ["CMD-SHELL", "cockroach sql --insecure --host=localhost:26258 -e \"SELECT 1\" > /dev/null"] |
| 244 | interval: 10s |
| 245 | timeout: 5s |
| 246 | retries: 15 |
| 247 | |
| 248 | cockroachdb-seed: |
| 249 | image: cockroachdb/cockroach:v24.1.0 |
| 250 | depends_on: |
| 251 | cockroachdb: |
| 252 | condition: service_healthy |
| 253 | volumes: |
| 254 | - ./seed/cockroachdb/seed.sh:/seed/seed.sh:ro |
| 255 | - ./seed/cockroachdb/seed.sql:/seed/seed.sql:ro |
| 256 | entrypoint: ["/bin/sh", "/seed/seed.sh"] |
| 257 | |
| 258 | cockroachdb-sleep: |
| 259 | image: cockroachdb/cockroach:v24.1.0 |
| 260 | depends_on: |
| 261 | cockroachdb: |
| 262 | condition: service_healthy |
| 263 | volumes: |
| 264 | - ./seed/cockroachdb/sleep.sh:/seed/sleep.sh:ro |
| 265 | - ./seed/cockroachdb/sleep.sql:/seed/sleep.sql:ro |
| 266 | entrypoint: ["/bin/sh", "/seed/sleep.sh"] |
| 267 | |
| 268 | yugabytedb: |
| 269 | image: yugabytedb/yugabyte:2.21.1.0-b271 |
| 270 | command: ["/home/yugabyte/bin/yugabyted", "start", "--daemon=false"] |
| 271 | ports: |
| 272 | - "${YUGABYTE_MASTER_PORT:-7000}:7000" |
| 273 | - "${YUGABYTE_YSQL_PORT:-5433}:5433" |
| 274 | healthcheck: |
| 275 | test: ["CMD-SHELL", "/home/yugabyte/bin/ysqlsh -h \"$(hostname -i)\" -U yugabyte -d yugabyte -c \"SELECT 1\" > /dev/null"] |
| 276 | interval: 10s |
| 277 | timeout: 5s |
| 278 | retries: 20 |
| 279 | |
| 280 | yugabytedb-seed: |
| 281 | image: yugabytedb/yugabyte:2.21.1.0-b271 |
| 282 | depends_on: |
| 283 | yugabytedb: |
| 284 | condition: service_healthy |
| 285 | volumes: |
| 286 | - ./seed/yugabytedb/seed.sh:/seed/seed.sh:ro |
| 287 | - ./seed/yugabytedb/seed.sql:/seed/seed.sql:ro |
| 288 | entrypoint: ["/bin/sh", "/seed/seed.sh"] |
| 289 | |
| 290 | yugabytedb-sleep: |
| 291 | image: yugabytedb/yugabyte:2.21.1.0-b271 |
| 292 | depends_on: |
| 293 | yugabytedb: |
| 294 | condition: service_healthy |
| 295 | volumes: |
| 296 | - ./seed/yugabytedb/sleep.sh:/seed/sleep.sh:ro |
| 297 | - ./seed/yugabytedb/sleep.sql:/seed/sleep.sql:ro |
| 298 | entrypoint: ["/bin/sh", "/seed/sleep.sh"] |
| 299 | |
| 300 | oracledb: |
| 301 | image: gvenzl/oracle-free:latest |
| 302 | environment: |
| 303 | ORACLE_PASSWORD: "Netdata123!" |
| 304 | APP_USER: netdata |
| 305 | APP_USER_PASSWORD: "Netdata123!" |
| 306 | ports: |
| 307 | - "${ORACLE_PORT:-1521}:1521" |
| 308 | volumes: |
| 309 | - ./seed/oracledb/init.sql:/container-entrypoint-initdb.d/init.sql:ro |
| 310 | healthcheck: |
| 311 | test: ["CMD-SHELL", "echo 'SELECT 1 FROM dual;' | sqlplus -L -s \"sys/$$ORACLE_PASSWORD@//localhost:1521/FREEPDB1 as sysdba\" > /dev/null"] |
| 312 | interval: 10s |
| 313 | timeout: 5s |
| 314 | retries: 20 |
| 315 | |
| 316 | oracledb-seed: |
| 317 | image: gvenzl/oracle-free:latest |
| 318 | depends_on: |
| 319 | oracledb: |
| 320 | condition: service_healthy |
| 321 | volumes: |
| 322 | - ./seed/oracledb/seed.sh:/seed/seed.sh:ro |
| 323 | - ./seed/oracledb/seed.sql:/seed/seed.sql:ro |
| 324 | entrypoint: ["/bin/bash", "/seed/seed.sh"] |
| 325 | |
| 326 | oracledb-sleep: |
| 327 | image: gvenzl/oracle-free:latest |
| 328 | depends_on: |
| 329 | oracledb: |
| 330 | condition: service_healthy |
| 331 | volumes: |
| 332 | - ./seed/oracledb/sleep.sh:/seed/sleep.sh:ro |
| 333 | - ./seed/oracledb/sleep.sql:/seed/sleep.sql:ro |
| 334 | entrypoint: ["/bin/bash", "/seed/sleep.sh"] |
| 335 | |
| 336 | rethinkdb: |
| 337 | image: rethinkdb:2.4 |
| 338 | ports: |
| 339 | - "${RETHINKDB_PORT:-28015}:28015" |
| 340 | healthcheck: |
| 341 | test: ["CMD-SHELL", "rethinkdb --version > /dev/null"] |
| 342 | interval: 5s |
| 343 | timeout: 5s |
| 344 | retries: 10 |
| 345 | |
| 346 | volumes: |
| 347 | proxysql-data: |