Автоматизируем ввод пароля в phpmyadmin чтобы не заморачиваться на локальной сборке проекта с вводом паролей.
Для этого, во первых root юзеру надо его сбросить:
UPDATE mysql.user SET Password='', authentication_string = '', plugin = 'mysql_native_password' WHERE User = 'root' AND Host = '%'; FLUSH PRIVILEGES;
А далее в config.inc.php добавляем свою логику:
$cfg['Servers'][$i]['AllowNoPassword'] = isset($_SERVER['HTTP_X_DB_PASS']) && getenv('DB_PASSWORD') == $_SERVER['HTTP_X_DB_PASS'] ? true : false;
register_shutdown_function(function ($AllowNoPassword) {
$out = ob_get_contents();
if (stripos($out, 'name="pma_password" id="input_password"') === false || !$AllowNoPassword) return;
ob_clean();
$out = str_replace('name="pma_username" id="input_username" value=""', 'name="pma_username" id="input_username" value="root"', $out);
$pos = strrpos($out, '</form>');
if($pos !== false) {
$out = substr_replace($out, '</form><script>input_go.click();</script>', $pos, strlen('</form>'));
}
echo $out;
}, $cfg['Servers'][$i]['AllowNoPassword']);
В данном случае у меня хостовый nginx задает заголовок из .env.dev с паролем proxy_set_header X-Db-Pass «12345»;
этот же пароль у меня есть в приложении, через getenv получаем, сравниваем их, если удачно — добавляем полезную нагрузку и входим автоматом.
Так же на хостовом nginx настроена автоматическая авторизация по http, аля
proxy_set_header Authorization «Basic fghdfgfgdfgfgfgdf»;
которая в докер nginx нас сразу авторизует без заморочек.