• Databases

    Published: November 14, 2025 | Updated: November 14, 2025

    MariaDB

    compose.yml file

    db:
      container_name: YOURCONTAINERNAME
      image: mariadb:10.11
      user: "1000:1000"
      restart: unless-stopped
      command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW --log_bin_trust_function_creators=true
      volumes:
        - ./db:/var/lib/mysql
      environment:
        MARIADB_ROOT_PASSWORD: YOURROOTPASSWORD
        MARIADB_DATABASE: YOURDB
        MARIADB_USER: YOURUSER
        MARIADB_PASSWORD: YOURPASSWORD
        TZ: Europe/Berlin
        PUID: 1000
        PGID: 1000
      networks:
        - default
    

    .env file

    
    MARIADB_ROOT_PASSWORD=
    MARIADB_DATABASE=
    MARIADB_USER=
    MARIADB_PASSWORD=
    TZ=Europe/Berlin
    
    PUID=1000
    
    PGID=1000
    

    Operations

    Dump Database

    docker exec DBCONTAINERNAME sh -c 'exec mysqldump -u"root" -p"ROOTPASSWORD" "DBNAME"' > dump.sql
    

    Restore Database

    cat dump.sql | docker exec -i DBCONTAINERNAME sh -c 'exec mysql -u"root" -p"ROOTPASSWORD" "DBNAME"'
    

    PSQL

    Compose File

    
    services:
      db:
        container_name: YOURCONTAINERNAME
        image: postgres:15-alpine
        user: "1000:1000"
        environment:
          POSTGRES_DB: YOURDB
          POSTGRES_PASSWORD: YOURPASSWORD
          POSTGRES_USER: YOURUSER
          PUID: 1000
          PGID: 1000
          TZ: Europe/Berlin
        restart: unless-stopped
        volumes:
          - ./db:/var/lib/postgresql/data
        networks:
          default: