Pomocí docker nasazení uvicorn server sloužit některé tensorflow model. Konec dockerfile vypadá takhle.
# Start ASGI server
CMD ['./runserver.sh']
Na runserver.sh
vypadá to,
#!/usr/bin/env bash
# encoding:utf-8
# This is a blocking call
uvicorn gateway:app --host=0.0.0.0 --workers 20 # Default port 8000
Toto je příkaz, který používám pro spuštění kontejneru
docker run --detach --publish 8000:8000 tensor_image
Moje očekávání a cíle: Kontejner bude zůstat naživu, dokud zabil s docker stop příkaz a klient může poslat požadavek na uvicorn server.
To, co se děje: Docker spustit příkaz jen ozvěny dlouhou id kontejneru na terminál a pak kontejner zemře.
Jak udržet v chodu? Také, jak se k zobrazení protokolu serveru sám, pokud jsem se uvicorn log, jeho obsah do místní soubor dovnitř kontejneru?
Pomocí Linux mint uľjana jako můj operační systém, pokud to je důležité. Některé další clari
runserver.sh
je blokování scénář (protože jeho poslední a jediný příkaz). Také, co myslíš tím, že hlavní proces kontejneru? Je to proces s pid=0, tj. systemd?