Я довольно новичок в докере, у меня были проблемы в течение нескольких дней, когда я настраивал докер-машину для совместного использования локальных файлов на моем Windows PC с использованием томов.
В основном я использую репозиторий github в качестве отправной точки https://github.com/koutsoumposval/laravel-microservices. Я заметил, что когда я не использую docker-машину, файлы распределяются с использованием конфигурации томов в моем файле docker-compose.
Однако, когда я размещаю один и тот же проект на докере, файлы не отображаются. я могу видеть папки верхнего уровня, когда захожу в докер, но все они пусты.
Также я смог получить локальные файлы для отображения на докер-машине с помощью директивы «COPY» в Dockerfile. но меня это не устраивает, так как изменения, внесенные в локальные файлы, автоматически не отражаются в докере.
Итак, мой вопрос: как я могу синхронизировать локальные файлы с докер-машиной, так как каталог 'volume', очевидно, не работает. Также, пожалуйста, укажите мне правильное направление, если я думаю об этом неправильно.
DOCKER-COMPOSE.YML
version: '3'
services:
proxy:
image: traefik
command: --web --docker --docker.domain=lm.local --docker.exposedbydefault=false --logLevel=DEBUG
networks:
- webgateway
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /dev/null:/traefik.toml
order:
build:
context: order/php-apache
volumes:
- ../order:/var/www/html
labels:
- "traefik.enable=true"
- "traefik.frontend.rule=Host:order.lm.local"
- "traefik.backend=order"
networks:
- webgateway
- web
restart: always
user:
build:
context: user/php-apache
volumes:
- ../user:/var/www/html
labels:
- "traefik.enable=true"
- "traefik.frontend.rule=Host:user.lm.local"
- "traefik.backend=user"
networks:
- webgateway
- web
restart: always
inventory:
build:
context: inventory/php-apache
volumes:
- ../inventory:/var/www/html
labels:
- "traefik.enable=true"
- "traefik.frontend.rule=Host:inventory.lm.local"
- "traefik.backend=inventory"
networks:
- webgateway
- web
restart: always
api:
build:
context: api-gateway/php-apache
volumes:
- ../api-gateway:/var/www/html
labels:
- "traefik.enable=true"
- "traefik.frontend.rule=Host:api.lm.local"
- "traefik.backend=api"
networks:
- webgateway
- web
restart: always
networks:
webgateway:
driver: bridge
web:
external:
name: traefik_webgateway
На рисунке ниже показаны ошибки, с которыми я сталкиваюсь в результате того, что локальные файлы не копируются на виртуальную машину. Таким образом, папка «html», в которой предполагается полное хранилище микросервисов, пуста.