anomaly / anomaly/lab-python-server

Revise `Dockerfile` for use in Kubernetes or provide additional configuration documentation

Abierto
#81 0 comentarios 0 reacciones 1 asignado Reclamado por @devraj Ver en GitHub
Lenguaje dominante
Python
Estrellas
16
Forks
4
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

**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

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.