Я настраиваю вампа. Docker-compose работал очень хорошо, пока у меня не возникли некоторые проблемы с контейнером phpmyadmin и mysql. Я не мог подключиться ни из php, ни из phpmyadmin и обычно получал это сообщение об ошибке: mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]
Мне удалось решить проблему, просто подключив вход в оболочку контейнера db docker exec -it db mysql -uroot -p
и выполнив следующую команду: ALTER USER 'root' IDENTIFIED WITH mysql_native_password by '123456';
Но это скучно, потому что у меня есть партнер, работающий над тем же проектом, и мы должны много меняйте рабочие посты, так что это означает, что каждый раз на этапе разработки перезапускайте docker, поэтому мне было интересно, что не так в моем docker-compose ...
Вот оно:
version: "3.1"
services:
www:
build: .
container_name: app
ports:
- "8001:80"
volumes:
- ~/Desktop/WORK_in_progress/camagru/www/:/var/www/html/
links:
- db
networks:
- default
db:
image: mysql:8.0
container_name: db
restart: always
tty: true
ports:
- "3306:3306"
command: --default-authentication-plugin=mysql_native_password
command: --innodb-use-native-aio=0
environment:
MYSQL_DATABASE: CAMAGRU
MYSQL_USER: user
MYSQL_PASSWORD: 123456
MYSQL_ROOT_PASSWORD: 123456
volumes:
- ~/Desktop/WORK_in_progress/camagru/dump:/docker-entrypoint-initdb.d
- ~/Desktop/WORK_in_progress/camagru/conf:/etc/mysql/conf.d
- persistent:/var/lib/mysql
networks:
- default
phpmyadmin:
container_name: phpmyadmin
restart: always
tty: true
image: phpmyadmin/phpmyadmin
links:
- db:db
ports:
- 8000:80
environment:
MYSQL_USER: user
MYSQL_PASSWORD: 123456
MYSQL_ROOT_PASSWORD: 123456
volumes:
persistent:
примечание: я не использую файл конфигурации, я немного изменил композицию, которую нашел в сети.