Хочу сделать свой докер-контейнер с mysql на основе ubuntu. Докер файл выглядит следующим образом:
FROM ubuntu:22.04
ENV MYSQL_ROOT_PASSWORD = password
RUN apt update && apt upgrade -y
RUN apt install mysql-server -y
EXPOSE 3306 33060
CMD mysqld
Докер контейнер подымается, но при попытке получить доступ из другого контейнера через docker-compose получаю ошибку PDOException: SQLSTATE[HY000] [2002] Connection refused. В гугле нашёл, что это связано с отсутствием пароля у юзера root в mysql (ибо при установке через apt он более не запрашивается в обязательном порядке), а само обращение к контейнеру происходит следующим образом:
$connection = new PDO('mysql:host=mysql;port=3306;', 'root', 'password');
Попытался решить эту проблему, добавив следующие строки в докер файл:
FROM ubuntu:22.04
ENV MYSQL_ROOT_PASSWORD = password
RUN apt update && apt upgrade -y
RUN apt install mysql-server -y
EXPOSE 3306 33060
CMD mysqld \
&& mysql -ppassword -e "CREATE DATABASE mydb;GRANT ALL PRIVILEGES on mydb.* TO 'root'@'localhost' WITH GRANT OPTION;ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}';FLUSH PRIVILEGES;"
Увы, ошибка никуда не исчезла, при этом ещё и запросы, вызываемые флагом -e не выполняются, но при этом ошибок никаких нет. Порт проверял в контейнере, стоит нужный мне 3306. Вообще не могу понять, в какую сторону думать :/