Skonfigurowałem projekt App Engine lokalnie przy użyciu Docker (w systemie OSX) i uruchomiłem serwer przy użyciu zwykłej komendy "gcloud preview app run app.yaml". Z tego co wiem, ciągle tworzy nowe obrazy. Po około godzinie pracy kończę z około 30 obrazami dokerów, z których każdy pobiera 130 MB.Uruchamianie i zatrzymywanie instancji App Engine przy użyciu Dockera
W końcu powiedziano mi, że nie mogę już powiązać z localhost: 8080. Próbowałem zabić wszystkie pojemniki i obrazy, ale nadal nie mogę używać localhost: 8080, dopóki nie uruchomię się ponownie.
Wygląda na to, że nie używam poprawnie Docker/gcloud. Czy ktoś ma pojęcie, co robię źle? Czy jest inny sposób, w jaki powinienem zrestartować instancje App Engine inne niż naciśnięcie polecenia C i ponowne uruchomienie komendy "uruchom"?
AKTUALIZACJA: Po dokładniejszym przyjrzeniu się zauważyłem, że otrzymuję tę wiadomość, gdy uruchomię aplikację lokalnie i utworzy się kontener: "http: Hijack nie jest zgodny z używaniem CloseNotifier". Nie znam Dockera, żeby zrozumieć, co tu się dzieje. Wszystkie wyszukiwania wydają się wskazywać Przejdź, którego nie używam.
UPDATE 2: Oto ślad:
Creating container...
INFO 2015-05-05 02:23:28,293 containers.py:560] Container 1564ce4344957114312d6d1dc696ffbb4176b40ace6dcff5e4239e13ee04a8f6 created.
Exception in thread Thread-2:
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File "/Users/judeosborn/google-cloud-sdk/platform/google_appengine/google/appengine/tools/docker/containers.py", line 643, in _ListenToLogs
for line in log_lines:
File "/Users/judeosborn/google-cloud-sdk/./lib/docker/docker/client.py", line 225, in _multiplexed_response_stream_helper
socket = self._get_raw_response_socket(response)
File "/Users/judeosborn/google-cloud-sdk/./lib/docker/docker/client.py", line 167, in _get_raw_response_socket
self._raise_for_status(response)
File "/Users/judeosborn/google-cloud-sdk/./lib/docker/docker/client.py", line 119, in _raise_for_status
raise errors.APIError(e, response, explanation=explanation)
APIError: 500 Server Error: Internal Server Error ("http: Hijack is incompatible with use of CloseNotifier")
INFO 2015-05-05 02:23:28,606 module.py:1745] New instance for module "default" serving on:
http://localhost:8080
Uważam, że są to dwa osobne zagadnienia - doker ima ges zachowane lokalnie przez długi czas, a port pozostaje związany pod pewnymi okręgami, gdy rezygnujesz. Po drugie, jeśli robisz "ps", czy widzisz proces z uruchomionym "dev_appserver.py"? Jeśli tak, co się stanie, jeśli ręcznie zabijesz ten proces? Ponadto, aby dwukrotnie sprawdzić - czy masz na myśli "control-C", aby rzucić? –
Prawdopodobnie masz rację w dwóch osobnych kwestiach, ale domyślam się, że są powiązane. Mogę zabić ten proces. I tak, mam na myśli kontrolę C. –
Gdy pojawi się problem z łączeniem portów, jeśli robisz ps, czy nadal widzisz, że coś działa? Wierzę, że możesz szukać "dev_appserver". –