I built a simple docker container to support my site, partytruths.com and wanted to share. I’ve tried to document as much as possible and it’s very easy to mount your own project folder. Please see the github repo for more details.
I built this as a multi-stage build to try to keep the size down, however it is still ~256MB compressed / 950MB uncompressed. This package includes many dependencies which inflate the size. Some required packages are large such as Pyarrow which is a Streamlit dependency and > 200MB alone. For additional efficiency, you may recompile many of these. The base image is not Alpine so the intrepid optimizer has many available options.
I’m running this successfully on with a simple stack including a Traefik reverse proxy on a free-tier Oracle Cloud instance with 1GB ram and 1 VCPU and it seems to run smoothly, though I haven’t done load testing.
Key packages included: