services: postgres: image: postgres:17 container_name: cleo-postgres restart: unless-stopped environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD in .env} POSTGRES_DB: cleo_auth ports: - "5432:5432" volumes: - cleo-pgdata:/var/lib/postgresql/data mariadb: # Same major version as the LAN server; MySQL 8 features are not available there. image: mariadb:10.4 command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_general_ci container_name: cleo-mariadb restart: unless-stopped environment: MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD:?set MARIADB_ROOT_PASSWORD in .env} MARIADB_DATABASE: cleo ports: # 3307 so it does not clash with a local MySQL/XAMPP on 3306. - "3307:3306" volumes: - cleo-mariadb-data:/var/lib/mysql volumes: cleo-pgdata: # Fixed name so the volume created earlier by `docker run -v cleo-pgdata:...` is reused. name: cleo-pgdata cleo-mariadb-data: # Fixed name so the backup restore into the named volume is reused. name: cleo-mariadb-data