Решил я проект на laravel перенести на docker, есть yml файл, который через build и dockerfile ссылается на конфиг nginx. По идее, файл nginx.conf настроен верно, но по запросу в браузере на localhost:8090, выдает ошибку "File not found". Такая же ошибка появлялась у меня давно, когда я настраивал каждый конфиг вручную, она означала то, что index.php не найден. Насколько я знаю, можно зайти внутрь самого контейнера nginx через команду sudo docker exec -it <название_контейнера> bash и проверить, правильно ли настроен сам конфиг(в частности, находит ли он index.php). Внутрь контейнера я зашел, но какая команду может сделать проверку и какие еще полезные команды внутри контейнеров существуют?
Всё правильно сделал. Проверь, что директория, которая указана в качестве root в конфиге Nginx действительно существует и в ней есть файлы.
В остальном внутри контейнера можно выполнять теже самые команды, что и в хотовой системе, если конечно все необходимые пакеты были добавлены, в образ. Между тем если чего-то не хватает, то можно собрать свой образ со всем необходимым софтом.
Вот-вот, я уже по сотому кругу проверяю правильность пути, все сходится(как минимум, на локалке, в nginx конфиге, где всё работает, точно такой же путь) Вот думал, что есть команда, которой можно проверить, видит ли он этот файлик
yellow_pus, проверь error.log - там написано по какому именно пути Nginx пытался найти файл.
И да, Nginx сам не умеет выполнять скрипты, но может передать инструкции какой скрипт выполнить и прочитать ответ, например с помощью директивы fastcgi_pass, в твоём случае она может выглядеть, как fastcgi_pass container_with_php_name:9000;