it’s easy, but not recommend for stable envs. App Engine spins up a virtual docker host and automatically deploy your Docker container to this env.
In general, the Dockerfile is always named Dockerfile and is placed in the same directory as the corresponding
app.yaml, alternatively you can assign an image URL.
So the only your app code the Docker file, which declares the stack, and an app.yaml is required to trigger a full stack deployment.
Note: Streamlit use WebSockets to create a persistent connection from a client.  The open connection allows  two-way data exchange between the client and the server at any time, resulting in lower latency and better  use of resources.
The App Engine front end forwards incoming requests to the appropriate module on port 8080.
You must ensure that your application code monitors port 8080.

# minimum config in order to use Docker

runtime: custom

env: flex


Deploy: gcloud app deploy ycs-appengine.yaml