docker -compose: невозможно получить доступ к phpMyAdmin из моего стека LEMP - PullRequest
0 голосов
/ 26 февраля 2020

Я только что создал стек LEMP (Linux, Nginx, MariaDB, PHP -FPM) с docker и docker -композицией. Но почему-то я не могу получить доступ к своей базе данных через phpMyAdmin.

Когда я пытаюсь получить доступ к веб-серверу phpMyAdmin, я получаю следующие ошибки:

MySQL говорит: Документация

Невозможно подключиться: неверные настройки.

Пакеты вышли из строя. Ожидается 0 получено 1. Размер пакета = 69

mysqli_real_connect (): Ошибка при чтении приветствующего пакета. PID = 18

mysqli_real_connect (): (HY000 / 2006): MySQL сервер ушел

phpMyAdmin попытался подключиться к серверу MySQL, и сервер отклонил соединение. Вы должны проверить хост, имя пользователя и пароль в вашей конфигурации и убедиться, что они соответствуют информации, предоставленной администратором сервера MySQL.

Остальное работает нормально.

Вот мой docker-compose.yml файл:

version: "3.3"
services:

    nougat:  #Nginx Server
        image: tutum/nginx:latest
        ports:
            - "8080:80"
        links:
            - papaya  # PHP-FPM service
        volumes:
            - type: bind
              source: ./nginx
              target: /etc/nginx/sites-available

            - type: bind
              source: ./nginx
              target: /etc/nginx/sites-enabled

            - type: bind
              source: ./logs/nginx-error.log
              target: /var/log/nginx/error.log

            - type: bind
              source: ./logs/nginx-access.log
              target: /var/log/nginx/access.log

    papaya:  # PHP-FPM service
        build: .
        volumes:
            - type: bind
              source: ./public
              target: /usr/share/nginx/html

    mango:  # MariaDB database
        image: mariadb:10.5.1
        volumes:
            - type: bind
              source: ./mango_database
              target: /var/lib/mysql
        environment:
            MYSQL_ROOT_PASSWORD: admin

    pomegranate:  # phpMyAdmin web-service
        image: phpmyadmin/phpmyadmin:4.9.4
        restart: always
        links:
            - mango:mysql  # MySQL database
        ports:
            - "8081:80"
        environment:
            PMA_HOST: mysql
            PMA_USER: root
            PMA_PASSWORD: admin
            PMA_ARBITRARY: 1

А вот мой Dockerfile:

FROM php:7.4.3-fpm

RUN docker-php-ext-install pdo pdo_mysql

RUN apt-get update -y && apt-get install -y libwebp-dev libjpeg62-turbo-dev libpng-dev libxpm-dev \
    libfreetype6-dev

RUN apt-get update && \
    apt-get install -y \
        zlib1g-dev 

RUN apt-get install -y libzip-dev

RUN docker-php-ext-install zip

RUN docker-php-ext-install gd

Спасибо за вашу помощь заранее.

1 Ответ

0 голосов
/ 27 февраля 2020

соедините все свои услуги вместе, используя networks

docker -compose.yml

version: "3.3"
services:

    nougat:  #Nginx Server
        image: tutum/nginx:latest
        ports:
            - "8080:80"
        networks:         # <-- Add this line
            - random_name # <-- Add this line
        # links:          # <-- Remove this
        #     - papaya    # <-- Remove this
        volumes:
            - type: bind
              source: ./nginx
              target: /etc/nginx/sites-available

            - type: bind
              source: ./nginx
              target: /etc/nginx/sites-enabled

            - type: bind
              source: ./logs/nginx-error.log
              target: /var/log/nginx/error.log

            - type: bind
              source: ./logs/nginx-access.log
              target: /var/log/nginx/access.log

    papaya:  # PHP-FPM service
        build: .
        networks:         # <-- Add this line
            - random_name # <-- Add this line
        volumes:
            - type: bind
              source: ./public
              target: /usr/share/nginx/html

    mango:  # MariaDB database
        image: mariadb:10.5.1
        networks:         # <-- Add this line
            - random_name # <-- Add this line
        volumes:
            - type: bind
              source: ./mango_database
              target: /var/lib/mysql
        environment:
            MYSQL_ROOT_PASSWORD: admin

    pomegranate:  # phpMyAdmin web-service
        image: phpmyadmin/phpmyadmin:4.9.4
        restart: always
        # links:            # <-- Remove this
        #     - mango:mysql # <-- Remove this
        ports:
            - "8081:80"
        networks:         # <-- Add this line
            - random_name # <-- Add this line
        environment:
            PMA_HOST: mysql
            PMA_USER: root
            PMA_PASSWORD: admin
            PMA_ARBITRARY: 1

networks:         # <-- Add this line
    random-name:  # <-- Add this line
...