Как я могу решить 403: Запрещено при использовании док-контейнера? - PullRequest
0 голосов
/ 24 мая 2018

Я новичок в Docker и в настоящее время следую этому уроку:

Изучите Docker за 12 минут

Я создал необходимые файлы иЯ сделал это, чтобы показать "Hello World!"на локальном хосте: 80.

После этого я попытался смонтировать контейнер, используя прямую ссылку на свою папку, чтобы я мог обновить файл index.php, чтобы имитировать среду разработки, и затем я пришел с этой ошибкой:

Forbidden

Все, что я сделал, это изменил способ запуска изображения, чтобы я мог обновить содержимое файла index.php и увидеть, как изменения отражаютна веб-странице, когда я нажимаю F5.

В настоящее время используется Docker для Windows в Windows 10 Pro

Docker для Windows работает

Я тщательно следовал всем шагам, чтобы не дать себя одурачить, и мне это не помогло.

Чтобы ответить на вопрос Морнора, вот результат для docker ps

docker ps

А вот для docker logs [container-name]

docker logs ae

И так как я теперь лучше понимаю, что происходит под капотом, как мне решить мою проблему, показанную в журнале?

Здесьэто мой Dockfile

Dockerfile

И команда, которую я выполнил для запуска моего образа:

docker run -p 80:80 -v /wmi/tutorials/docker/src/:/var/www/html/ hello-world

Итак, вы видите, что файл существует:

path to index.php

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Я думаю, что вы неправильно произносите свой index.php.Что бы вы могли сделать для его отладки, это сначала проверить, действительно ли index.php смонтирован в контейнере.Вы можете выполнить следующую команду:

docker run -p 80:80 -v /wmi/tutorials/docker/src/:/var/www/html/ hello-world bash -c 'ls -lsh /var/www/html/'

(используйте sh вместо bash, если она не работает).Если вы действительно видите index.php, то поздравляю, ваш файл правильно смонтирован, и ошибка не в Docker, а в Apache.

Если index.php там нет, то вам нужно проверить свой Dockerfile.Вы монтируете src/, проверьте, находится ли /src в том же каталоге, что и ваш Dockerfile.

Держите нас в курсе:)

0 голосов
/ 24 мая 2018

Ошибка приходит от Apache, который пытается показать вам содержимое каталога, так как нет доступного индексного файла.Либо ваше отображение докера не работает должным образом, либо у вашего apache не установлена ​​поддержка php.Вы получаете доступ к http://localhost, try http://localhost/index.php.

Если вы получаете ту же ошибку, проблема связана с отображением.Если вы получаете php-код, проблема в отсутствии поддержки PHP в Apache.

...