anomaly / anomaly/lab-python-server
Revise `Dockerfile` for use in Kubernetes or provide additional configuration documentation
- Lingua principale
- Python
- Stelle
- 16
- Fork
- 4
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
**Is your feature request related to a problem? Please describe.**
When trying to use the template for a project that would run in Kubernetes, there were many things that didn't work.
- The `Dockerfile` for production does not provide a `CMD` which is expected for the container to run, either provide this or provide documentation for creating the `helm` chart to provide the `command` to run. Ideally we could do both, where if a `command` is not provided it runs the `fastapi` app and otherwise runs `taskiq` workers etc.
- To make the template generic we have used the variable `PROJ_NAME` wherever possible, this has worked while we have used `docker compose` to run production workloads where it can find the environment variable but not much when it's running in a Kubernetes managed environment. This is particularly an issue with the `Dockerfile` itself where it references `PROJ_NAME` in the `uvicorn` command
- Should we use `gunicorn` at all? Follow [this discussion](https://github.com/tiangolo/fastapi/discussions/7439#discussioncomment-5140961) on FastAPI discussion.
The `Dockerfile` has a section where we run as the project `User` this results in:
```
INFO: Started server process [1]
INFO: Waiting for application startup.
INFO: Application startup complete.
ERROR: [Errno 13] error while attempting to bind on address ('0.0.0.0', 80): permission denied
INFO: Waiting for application shutdown.
INFO: Application shutdown complete.
```
See [bind() to 0.0.0.0:80 failed(13: Permission denied](https://github.com/kubernetes/ingress-nginx/issues/3858) where they [suggest to run the command as root](https://github.com/kubernetes/ingress-nginx/issues/3858#issuecomment-470099783)
**Describe the solution you'd like**
Either provide a programmatic solution to the above or extended documentation that allows developers to quickly use this template in production in Kubernetes.
**Describe alternatives you've considered**
NA
**Additional context**
All relevant to the Kubernetes deployment
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Valutazione
Questa issue non è ancora stata valutata.