Как поделиться файлами локального хоста с докером - PullRequest
0 голосов
/ 08 июня 2019

Я довольно новичок в докере, у меня были проблемы в течение нескольких дней, когда я настраивал докер-машину для совместного использования локальных файлов на моем 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», в которой предполагается полное хранилище микросервисов, пуста. Error message when i run docker-compose

...