mirror of
https://github.com/Portabase/agent.git
synced 2026-09-10 18:16:55 +00:00
eac2853b83
* fix: tests and refactoring, add justfile instead of makefile * chore: add tiberius dependency for MSSQL support * feat: add Mssql variant to DbType enum and config validation * feat: add MSSQL domain adapter with tiberius ping and sqlpackage backup/restore * feat: install sqlpackage in Docker base and prod stages * feat: add MSSQL service to docker-compose and config examples * fix: log backup errors instead of silently discarding them * fix: use dotnet-install.sh instead of Microsoft apt feed (SHA1 key rejected by Debian Trixie) * fix: add /TrustServerCertificate:true to sqlpackage commands for self-signed certs * fix: use connection string with TrustServerCertificate for sqlpackage * fix: use user database in MSSQL config example (system databases cannot be exported) * feat: add seed-mssql task and seed script * fix: docker-compose.yml
199 lines
4.2 KiB
YAML
199 lines
4.2 KiB
YAML
name: databases
|
|
|
|
services:
|
|
db-postgres:
|
|
container_name: db-postgres
|
|
image: postgres:17-alpine
|
|
ports:
|
|
- "5436:5432"
|
|
volumes:
|
|
- postgres-data:/var/lib/postgresql/data
|
|
environment:
|
|
- POSTGRES_DB=devdb
|
|
- POSTGRES_USER=devuser
|
|
- POSTGRES_PASSWORD=changeme
|
|
networks:
|
|
- portabase
|
|
|
|
db-mariadb:
|
|
container_name: db-mariadb
|
|
image: mariadb:latest
|
|
ports:
|
|
- "3311:3306"
|
|
environment:
|
|
- MYSQL_DATABASE=mariadb
|
|
- MYSQL_USER=mariadb
|
|
- MYSQL_PASSWORD=changeme
|
|
- MYSQL_RANDOM_ROOT_PASSWORD=yes
|
|
volumes:
|
|
- mariadb-data:/var/lib/mysql
|
|
networks:
|
|
- portabase
|
|
|
|
db-mysql:
|
|
container_name: db-mysql
|
|
image: mysql:9.5
|
|
ports:
|
|
- "3312:3306"
|
|
environment:
|
|
- MYSQL_DATABASE=mysqldb
|
|
- MYSQL_USER=mysqldb
|
|
- MYSQL_PASSWORD=changeme
|
|
- MYSQL_RANDOM_ROOT_PASSWORD=yes
|
|
volumes:
|
|
- mysql-data:/var/lib/mysql
|
|
networks:
|
|
- portabase
|
|
|
|
|
|
db-mongodb-auth:
|
|
container_name: db-mongodb-auth
|
|
image: mongo:latest
|
|
ports:
|
|
- "27082:27017"
|
|
environment:
|
|
MONGO_INITDB_ROOT_USERNAME: root
|
|
MONGO_INITDB_ROOT_PASSWORD: rootpassword
|
|
MONGO_INITDB_DATABASE: testdbauth
|
|
command: mongod --auth
|
|
networks:
|
|
- portabase
|
|
volumes:
|
|
- mongodb-data-auth:/data/db
|
|
healthcheck:
|
|
test: [ "CMD", "mongo", "--eval", "db.adminCommand('ping')" ]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
db-mongodb:
|
|
container_name: db-mongodb
|
|
image: mongo:latest
|
|
ports:
|
|
- "27083:27017"
|
|
volumes:
|
|
- mongodb-data:/data/db
|
|
healthcheck:
|
|
test: [ "CMD", "mongosh", "--eval", "db.adminCommand('ping')" ]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
environment:
|
|
MONGO_INITDB_DATABASE: testdb
|
|
networks:
|
|
- portabase
|
|
|
|
sqlite:
|
|
container_name: db-sqlite
|
|
image: keinos/sqlite3
|
|
volumes:
|
|
- sqlite-data:/workspace/data
|
|
working_dir: /workspace
|
|
command: tail -f /dev/null
|
|
stdin_open: true
|
|
tty: true
|
|
|
|
db-redis:
|
|
image: redis:latest
|
|
container_name: db-redis
|
|
ports:
|
|
- "6378:6379"
|
|
volumes:
|
|
- redis-data:/data
|
|
command: [ "redis-server", "--appendonly", "yes" ]
|
|
networks:
|
|
- portabase
|
|
|
|
db-redis-auth:
|
|
image: redis:latest
|
|
container_name: db-redis-auth
|
|
ports:
|
|
- "6380:6379"
|
|
volumes:
|
|
- redis-data-auth:/data
|
|
environment:
|
|
- REDIS_PASSWORD=supersecurepassword
|
|
command: [ "redis-server", "--requirepass", "supersecurepassword", "--appendonly", "yes" ]
|
|
networks:
|
|
- portabase
|
|
|
|
db-valkey:
|
|
image: valkey/valkey
|
|
container_name: db-valkey
|
|
environment:
|
|
- ALLOW_EMPTY_PASSWORD=yes
|
|
ports:
|
|
- '6381:6379'
|
|
volumes:
|
|
- valkey-data:/data
|
|
networks:
|
|
- portabase
|
|
|
|
db-valkey-auth:
|
|
image: valkey/valkey
|
|
container_name: db-valkey-auth
|
|
command: >
|
|
--requirepass "supersecurepassword"
|
|
ports:
|
|
- '6382:6379'
|
|
volumes:
|
|
- valkey-data-auth:/data
|
|
networks:
|
|
- portabase
|
|
|
|
db-firebird:
|
|
image: firebirdsql/firebird
|
|
container_name: db-firebird
|
|
restart: always
|
|
environment:
|
|
- FIREBIRD_ROOT_PASSWORD=fake_root_password
|
|
- FIREBIRD_USER=alice
|
|
- FIREBIRD_PASSWORD=fake_password
|
|
- FIREBIRD_DATABASE=mirror.fdb
|
|
- FIREBIRD_DATABASE_DEFAULT_CHARSET=UTF8
|
|
volumes:
|
|
- firebird-data:/var/lib/firebird/data
|
|
ports:
|
|
- "3060:3050"
|
|
|
|
networks:
|
|
- portabase
|
|
|
|
db-mssql:
|
|
container_name: db-mssql
|
|
image: mcr.microsoft.com/azure-sql-edge:latest
|
|
ports:
|
|
- "1433:1433"
|
|
environment:
|
|
ACCEPT_EULA: "Y"
|
|
MSSQL_SA_PASSWORD: "Portabase!Strong1"
|
|
volumes:
|
|
- mssql-data:/var/opt/mssql
|
|
networks:
|
|
- portabase
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "cat /proc/net/tcp6 | grep -q '059901' || exit 1"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 20
|
|
|
|
volumes:
|
|
postgres-data:
|
|
mariadb-data:
|
|
mysql-data:
|
|
mongodb-data:
|
|
mongodb-data-auth:
|
|
sqlite-data:
|
|
redis-data:
|
|
redis-data-auth:
|
|
valkey-data:
|
|
valkey-data-auth:
|
|
firebird-data:
|
|
mssql-data:
|
|
|
|
networks:
|
|
portabase:
|
|
name: portabase_network
|
|
external: true
|
|
|