Mam kontener dokowania, który uruchamia skrypt Pythona: oczekiwanie na żądania wejścia i przetwarzanie danych odpowiednio.Monitorowanie zmian w plikach w woluminach Docker
Ponieważ używam docker do programowania, Chciałbym, aby po każdej zmianie kodu źródłowego tego pliku Pythona (w moim komputerze, a nie w kontenerze) kontener zatrzymał skrypt Pythona i ponownie go uruchomi nowy kod. Ponieważ teraz muszę ręcznie zatrzymać pojemnik i ponownie go uruchomić. Mógłbym też monitorować zmiany plików po mojej stronie (zamiast w kontenerze), ale chciałbym tego uniknąć i zrobić to w samym kontenerze.
Używam opcji docker-compose w wersji volumes
do udostępniania kodu źródłowego między moim FS a kontenerem.
Aby monitorować zmiany w plikach, próbowałem użyć narzędzia powłoki watchmedo z modułu python watchdog. Po prostu mam ten dziwny problem, że nie mogę zauważyć zmian pliku tego pliku źródłowego Pythona, chyba że edytuję go z wnętrza kontenera, a nie w moim lokalnym FS, nawet jeśli są one montowane z opcją volumes
.
Mam wrażenie, że ma to coś wspólnego z działaniem dockera, a może również z woluminami. Próbowałem przeczytać na ten temat w Internecie, ale nie miałem szczęścia. Jakieś pomysły? Całkowicie utknąłem!
EDYCJA: Oto gif, który lepiej to wyjaśnia. Górne do paneli są podłączone do tego samego kontenera, a dolne dwa do mojego lokalnego komputera. Wszystkie panele są wskazane w tym samym folderze.
Czy możesz pokazać polecenie uruchomienia, plik Docker, lokalizację pliku Pythona (który monitorujesz zmiany)? – user2915097
Czy Twój host OS OSX? Jeśli tak, sprawdź [Jaki jest właściwy sposób konfiguracji środowiska programistycznego w systemie OS X za pomocą Docker?] (Http://stackoverflow.com/q/30090007/266795) –
czy powiązałeś mount /var/run/docker.sock, lub mówiąc inaczej, czy w poleceniu run masz '-v /var/run/docker.sock:/var/run/docker.sock'? – user2915097