MySQL, MongoDB, PHP, phpMyAdmin und Apache als Docker

Zuerst einmal brauchen wir ein Dockerfile für den PHP und Apache Anteil. Man beachte vor allem das Hinzufügen der mysql und pdo - Elemente, die eine PHP Datenbankanbindung braucht

FROM php:8.0-apache RUN apt-get update && apt-get upgrade -y RUN cd /var/www/html RUN apt-get install -y git unzip libssh-dev RUN docker-php-ext-install mysqli pdo pdo_mysql && docker-php-ext-enable mysqli pdo pdo_mysql RUN yes '' | pecl install mongodb && echo "extension=mongodb.so" > $PHP_INI_DIR/conf.d/mongo.ini RUN curl https://getcomposer.org/installer -o composer_installer.php RUN php composer_installer.php RUN php composer.phar require mongodb/mongodb

Dieses Dockerfile binden wir dann in das restliche docker-compose.yml ein:

Beim Verbinden mper phpmyadmin nicht vergessen, das der Root- Account bei MySQL auch tatsächlich root heißt und nicht irgendwie anders

# ./docker-compose.yml version: '3' services: db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: myadminpassword MYSQL_DATABASE: generic_db MYSQL_USER: bpadmin MYSQL_PASSWORD: mypassword ports: - "9906:3306" web: build: context: . dockerfile: Dockerfile container_name: php_web depends_on: - db volumes: - ./php/:/var/www/html/ ports: - "8100:80" stdin_open: true tty: true pma: image: phpmyadmin container_name: phpmyadmin environment: phpmyadmin: https://my_real_domain.com/phpmyadmin/ ports: - "9910:80"