В вашем файле сборки вы копируете содержимое src в образ (под /var/www/html
). Каталог src является частью контекста сборки и должен находиться ниже корневого каталога 'build'. Вероятно, именно здесь вы запустили команду сборки docker, и обычно это место, где живет dockerfile
.
В вашем файле compose вы отображаете каталог src
поверх /var/www/html
, заменяя его содержимое на src
во время выполнения.
Я предполагаю, что вы действительно хотите сделать одну из этих двух вещей. В любом случае это хорошо, в зависимости от того, чего вы пытаетесь достичь, но на основании вашего отчета похоже, что место, из которого вы запускаете docker-compose up
, имеет пустой каталог src
, отсюда и сообщение об ошибке. Чтобы это исправить, либо используйте абсолютный путь к каталогу, который вы хотите обслуживать, либо удалите определение volumes
для этого контейнера.
Один из способов проверить это (при условии, что вы пометили свое изображение HelloWorld
):
docker run -it -d --name helloworld -p 80:80 HelloWorld
Тогда docker ps
просто чтобы убедиться, что он работает. Если все хорошо, попробуйте это:
docker exec -it -w /var/www/html helloworld ls -gAlFh
Это должно дать вам список того, что находится в этом каталоге. Вы также можете попробовать это:
docker exec -it -w /var/www/html helloworld sh
Чтобы получить оболочку в этом каталоге, чтобы вам было легче исследовать ее.