2017-01-29 9 views
1

Я пытаюсь использовать Docker для улучшения моего рабочего процесса. Я установил "Docker Toolbox for Windows" на мой домашний домашний Windows 10 (поскольку Docker предположительно работает только на профессиональном уровне). Я использую mgexhev's angular-seed, которые утверждают, что обеспечивают полную поддержку докеров. Существует файл docker-compose.yml, который связывает файл ./.docker/angular-seed.development.dockerfile.Изменение файлов проекта не меняет файлы внутри машины Docker

После того, как git клонирует проект семени, я могу запустить его, выполнив команды, указанные на seed project's github page. Так что я могу увидеть приложение после запуска:

$ docker-compose build 
$ docker-compose up -d 

Но когда я изменить код с Visual Studio кодекса и сохранить LiveReload не работает. Единственный способ, которым я могу видеть мои изменения, - перезапустить команды сборки и обновления (которые повторно запускают npm install; 5min).

В Docker's documentation они говорят «монтирование каталога хоста как объем данных» для того, чтобы иметь возможность «изменить исходный код и увидеть его влияние на применение в реальном времени»

docker run -v //c/<path>:/<container path> 

Но я «Не уверен, что это правильно, когда я использую докер? Я также пробовал работать:

docker run -d -P --name web -v //c/Users/k/dev/:/home/app/ angular-seed 
docker run -p 5555:5555 -v //c/Users/k/dev/:/home/app/ -w "/home/app/" angular-seed 
docker run -p 5555:5555 -v $(pwd):/home/app/ -w "/home/app/" angular-seed 

и множество подобных команд, но ничего не работает.

Я попытался переместить свой проект из проекта C:/dev/project на дом, потому что я где-то читал, что могут быть некоторые проблемы с правом доступа, не используя «домашний» каталог, но это не имело никакого значения.

Я также немного смущен, что инструкции говорят посетить localhost: 5555. Мне нужно перейти на dockerIP: 5555, чтобы увидеть приложение (в случае, если эта помощь поможет понять, почему мой код не обновляется внутри моего контейнера докеров).

Конечно мои изменения должны двигаться в окружающей среде Docker автоматически или докер не очень полезно для развития :)

ответ

1

Глядя на Докер-compose.yml вы связаны, я не вижу никакого объема запись. Без этого между файлами вашего хоста и файлами внутри контейнера не существует связи. Вы будете нуждаться в Докер-compose.yml, который включает в себя запись тома, как:

version: '2' 

services: 

    angular-seed: 
    build: 
     context: . 
     dockerfile: ./.docker/angular-seed.development.dockerfile 
    command: npm start 
    container_name: angular-seed-start 
    image: angular-seed 
    networks: 
     - dev-network 
    ports: 
     - '5555:5555' 
    volumes: 
     - .:/home/app/angular-seed 

networks: 
    dev-network: 
    driver: bridge 

Докер-машина работает докер внутри виртуальной коробки VM. По умолчанию, я считаю, что c: \ Users разделяют на виртуальную машину, но вам нужно проверить настройки виртуального окна, чтобы подтвердить это. Любые каталоги хостов, которые вы пытаетесь отобразить в контейнере, сопоставляются с виртуальной машиной, поэтому, если ваша папка не разделена на эту виртуальную машину, ваши файлы не будут включены.

С IP-адресом localhost работает на хостах Linux и более поздних версиях докеров для windows/mac. Старые установки на докере-машине должны использовать IP виртуальной виртуальной машины.

+0

Я разместил новый вопрос с вопросом о том, как установить настройку громкости на Windows 10 домой http://stackoverflow.com/questions/41932778/setting-volumes-in-docker-compose-yml-file-for- окна-10-дом – Kriss