version: '3.9'

services:
    mysql:
        image: mysql:lts
        labels:
            # the default must be "false": it is what an instance that has no dockerMysql in its native
            # config falls back to (e.g. after an upgrade from 3.x), and nobody may get containers created
            # without asking for them
            - 'iobEnabled=${config.dockerMysql.enabled:-false}'
            - 'iobStopOnUnload=${config.dockerMysql.stopIfInstanceStopped:-false}'
            - 'iobAutoImageUpdate=${config.dockerMysql.autoImageUpdate:-true}'
            - 'iobBackup=mysql_data'
        ports:
            - '${config.dockerMysql.bind:-127.0.0.1}:${config_dockerMysql_port:-3306}:3306'
        container_name: mysql
        environment:
            MYSQL_DATABASE: 'iobroker'
            MYSQL_USER: 'iobroker'
            MYSQL_PASSWORD: 'iobroker'
            MYSQL_ALLOW_EMPTY_PASSWORD: 'false'
            MYSQL_ROOT_PASSWORD: '${config.dockerMysql.rootPassword:-root_iobroker}'
        volumes:
            - mysql_data:/var/lib/mysql
            - mysql_config:/etc/mysql/conf.d
        networks:
            - true
        restart: unless-stopped

    phpMyAdmin:
        image: phpmyadmin:latest
        labels:
            - 'iobEnabled=${config.dockerPhpMyAdmin.enabled:-false}'
            - 'iobStopOnUnload=${config.dockerPhpMyAdmin.stopIfInstanceStopped:-true}'
            - 'iobAutoImageUpdate=${config.dockerPhpMyAdmin.autoImageUpdate:-true}'
        container_name: phpmyadmin
        depends_on:
            - mysql
        ports:
            - '${config.dockerPhpMyAdmin.bind:-127.0.0.1}:${config_dockerPhpMyAdmin_port:-8080}:8080'
        environment:
            MYSQL_ROOT_PASSWORD: '${config.dockerMysql.rootPassword:-root_iobroker}'
            MYSQL_USER: 'iobroker'
            MYSQL_PASSWORD: 'iobroker'
            # no ":-" default here: an empty default resolves to the number 0
            PMA_ABSOLUTE_URI: '${config.dockerPhpMyAdmin.absoluteUri}'
            # the mysql service above is created as iob_sql_<instance>_mysql
            PMA_HOST: 'iob_sql_${instance}_mysql'
            PMA_PORT: '3306'
        networks:
            - true
        restart: unless-stopped

networks:
    true:
        driver: bridge

volumes:
    mysql_data:
    mysql_config:
