Open
Description
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 aCMD
which is expected for the container to run, either provide this or provide documentation for creating thehelm
chart to provide thecommand
to run. Ideally we could do both, where if acommand
is not provided it runs thefastapi
app and otherwise runstaskiq
workers etc. - To make the template generic we have used the variable
PROJ_NAME
wherever possible, this has worked while we have useddocker 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 theDockerfile
itself where it referencesPROJ_NAME
in theuvicorn
command - Should we use
gunicorn
at all? Follow this discussion 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 where they suggest to run the command as root
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
Metadata
Metadata
Assignees
Labels
No labels