Is there a way to deploy Streamlit App on Azure App Service without using Docker? All the guides in the internet refer to Docker virtualization whereas in theory, the Azure Web App should be able deploy the code automatically from Azure Repo. I used “streamlit run app.py” as a startup command in the Azure configuration tab, but nothing really happens.
3 Answers
You can build this out by setting up a normal Steamlit app and throw in the App Service specific configurations to get this going. Here are the exact steps:
Create Azure App service with pricing tier B1 or higher. Free version(F1) doesnt support websocket which is required for Streamlit.
Create a folder for the project. And add
requirements.txtwith following content.streamlit
Deploy this folder to Azure app service.
Make the following configuration change. Under
Configuration > General Settings > Startup commandprovide the following valuepython -m streamlit hello --server.port 8000 --server.address 0.0.0.0
Enable Web Scockets in the Azure App service configuration.
Azure only allows pip binaries to run when used as modules instead of directly. We are mentioning port beacuse by default the service listens to port 8000. We are mentioning the server.address as 0.0.0.0 so that the it can serve all the incoming request from azure infra.
3 Comments
Enable Web Scockets option. Some people say I must use Windows os, but it is not available for python3. I did choose B1 tier. Streamlit is launching but stuck in Please wait inside Streamlit interfaceTo use this to run your app you need to replace "hello" with "run app.py" (assuming the application name is app.py). For me this worked when I put my code on gitHub and signed in, but I failed both when I deployed via VSCode with Azure extensions, or via gitlab. When I did exactly according to this video it worked: https://www.youtube.com/watch?v=2toRzAYT8yo.
Comments
it can be achieved in muliple ways without using Docker
in VS CODE, add extention "Azure App Service". Once you open it, on left hand side navigation , you would see your Resources->your subscription->App Services->your app service name. There you can right click and say "deploy to web app". Select "yes" to allow configuration is the key here Earlier I did not selected yes and so I was getting same error as you sad smily Application error
If your organization allows, during "web app" service creation , under deployment, you can select enable CI/CD option . Then you can authorize with your organization account. It will trigger deployment from github repository
