Docker. Не работает MySQL + phpMyAdmin
Имееться Docker образ с установленным phpMyAdmin и MySQL, проблема заключается в следующем, а именно: Все контейнеры запускаются правильно и корректно, но у phpMyAdmin нет доступа к базе данных MySQL, так же нет доступа сторонними приложениями по типу HeidiSQL и прочими ПУ для баз данных.
Мой Docker-compose:
version: "3.7"
networks:
serve.network:
driver: bridge
services:
php:
build: ./docker/php
restart: always
tty: true
container_name: serve.php
depends_on:
- mysql
# - postgres
# - redis
# - mariadb
networks:
- serve.network
ports:
- "9000:9000"
volumes:
- .:/var/www/app.dev
nginx:
build: ./docker/nginx
container_name: serve.nginx
restart: always
tty: true
depends_on:
- php
- mysql
# - postgres
# - redis
# - mariadb
ports:
- "80:80"
- "433:433"
volumes:
- .:/var/www/app.dev
networks:
- serve.network
# apache:
# build: ./docker/apache
# restart: always
# container_name: serve.apache
# networks:
# - serve.network
# depends_on:
# - php
# # - mysql
# # - postgres
# # - redis
# # - mariadb
# ports:
# - "80:80"
# - "443:443"
# volumes:
# - .:/var/www/app.dev
#mariadb:
# image: mariadb
# tty: true
# restart: always
# container_name: serve.mariadb
# networks:
# - serve.network
# ports:
# - '3307:3307'
# volumes:
# - './docker/mysql/config/mariadb.cnf:/etc/mysql/conf.d/custom.cnf:ro'
# - './docker/mysql/dbdata:/var/lib/mysql'
# environment:
# - MYSQL_PASSWORD=root
# - MYSQL_ROOT_PASSWORD=root
# - MYSQL_DATABASE=development
mysql:
build: ./docker/mysql
tty: true
restart: always
container_name: serve.mysql
networks:
- serve.network
ports:
- "3306:3306"
volumes:
- "./docker/mysql/config/mysql.cnf:/etc/mysql/conf.d/custom.cnf:ro"
- "./docker/mysql/dbdata:/var/lib/mysql"
environment:
- MYSQL_PASSWORD=root
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=development
phpmyadmin:
image: library/phpmyadmin
container_name: serve.phpmyadmin
tty: true
networks:
- serve.network
depends_on:
- mysql
ports:
- '8080:80'
#postgres:
# build: ./docker/postgres
# container_name: serve.postgres
# tty: true
# restart: always
# networks:
# - serve.network
# ports:
# - "5432:5432"
# volumes:
# - "./docker/postgres/dbdata:/var/lib/postgresql/data"
# environment:
# - POSTGRES_USER=root
# - POSTGRES_PASSWORD=root
# - POSTGRES_DB=development
#redis:
# image: bitnami/redis:latest
# restart: always
# tty: true
# container_name: serve.redis
# volumes:
# - ./docker/redis:/bitnami/redis/data
# networks:
# - serve.network
# environment:
# - ALLOW_EMPTY_PASSWORD=no
# - REDIS_PASSWORD=root
# ports:
# - "6379:6379"
В phpMyAdmin следующие ошибки:
mysqli::real_connect(): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution
mysqli::real_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution
И так же console log:
skeleton-docker.phpmyadmin | 172.21.0.1 - - [13/Aug/2021:11:07:06 +0000] "POST /index.php?route=/ HTTP/1.1" 200 6270 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36"
skeleton-docker.mysql | 2021-08-13 11:07:24+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
skeleton-docker.mysql | 2021-08-13 11:07:24+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.26-1debian10 started.
skeleton-docker.mysql | mysqld: [Warning] World-writable config file '/etc/mysql/conf.d/custom.cnf' is ignored.
skeleton-docker.mysql | 2021-08-13T11:07:25.457419Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.26) starting as process 1
skeleton-docker.mysql | 2021-08-13T11:07:25.497090Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive
skeleton-docker.mysql | 2021-08-13T11:07:25.630180Z 1 [System] [MY-011012] [Server] Starting upgrade of data directory.
skeleton-docker.mysql | 2021-08-13T11:07:25.630672Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
skeleton-docker.mysql | 2021-08-13T11:07:27.215387Z 1 [ERROR] [MY-012224] [InnoDB] Tablespace flags are invalid in datafile: ./ibdata1, Space ID:0, Flags: 21. Please refer to http://dev.mysql.com/doc/refman/8.0/en/innodb-troubleshooting-datadict.html for how to resolve the issue.
skeleton-docker.mysql | 2021-08-13T11:07:27.215837Z 1 [ERROR] [MY-012237] [InnoDB] Corrupted page [page id: space=0, page number=0] of datafile './ibdata1' could not be found in the doublewrite buffer.
skeleton-docker.mysql | 2021-08-13T11:07:27.221093Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Data structure corruption.
skeleton-docker.mysql | 2021-08-13T11:07:27.581384Z 1 [ERROR] [MY-011013] [Server] Failed to initialize DD Storage Engine.
skeleton-docker.mysql | 2021-08-13T11:07:27.587860Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
skeleton-docker.mysql | 2021-08-13T11:07:27.588403Z 0 [ERROR] [MY-010119] [Server] Aborting
skeleton-docker.mysql | 2021-08-13T11:07:27.597417Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.26) MySQL Community Server - GPL.
У меня нет большого опыта работы с Docker, но похоже ни у одного контейнера нет доступа к самой базе данных из-за чего phpMyAdmin не может к ней подключиться. В чем может быть причина и как её исправить?