Failed: Deployment on Azure WebAPP via Docker Container

Hi All,

I am baffled by a mysterious force which is stopping me to deploy a simple app on azure web apps. Everything works until the creation of a docker image, which is tested and is running. All seems ok setup wise for Azure, resource group, container registry. I can successfully push my image to a container registry and can attach it to an app service.

This is where the issue starts. When I try to access the link to my app on the network, nothing happens…it just keeps searching and then comes up with an application error. I have searched around for possible solutions including the following:

  1. EnableCors turned to ‘False’ in the config.toml file
  2. Checked and confirmed all other settings

Attaching Dockerfile below for review and can produce further details.

Config.toml

[global]

> By default, Streamlit checks if the Python watchdog module is available and, if not, prints a warning asking for you to install it. The watchdog module is not required, but highly recommended. It improves Streamlit’s ability to detect changes to files in your filesystem.

If you’d like to turn off this warning, set this to True.

Default: false

disableWatchdogWarning = false

Configure the ability to share apps to the cloud.

Should be set to one of these values: - “off” : turn off sharing. - “s3” : share to S3, based on the settings under the [s3] section of this config file.

Default: “off”

sharingMode = “off”

If True, will show a warning when you run a Streamlit-enabled script via “python my_script.py”.

Default: true

showWarningOnDirectExecution = true

Level of logging: ‘error’, ‘warning’, ‘info’, or ‘debug’.

Default: ‘info’

logLevel = “debug”

[client]

Whether to enable st.cache.

Default: true

caching = true

If false, makes your Streamlit script not draw to a Streamlit app.

Default: true

displayEnabled = true

[runner]

Allows you to type a variable or string by itself in a single line of Python code to write it to the app.

Default: true

magicEnabled = true

Install a Python tracer to allow you to stop or pause your script at any point and introspect it. As a side-effect, this slows down your script’s execution.

Default: false

installTracer = false

Sets the MPLBACKEND environment variable to Agg inside Streamlit to prevent Python crashing.

Default: true

fixMatplotlib = true

[server]

List of folders that should not be watched for changes. Relative paths will be taken as relative to the current working directory.

Example: [‘/home/user1/env’, ‘relative/path/to/folder’]

Default:

folderWatchBlacklist = [‘’]

If false, will attempt to open a browser window on start.

Default: false unless (1) we are on a Linux box where DISPLAY is unset, or (2) server.liveSave is set.

headless = false

Immediately share the app in such a way that enables live monitoring, and post-run analysis.

Default: false

liveSave = false

Automatically rerun script when the file is modified on disk.

Default: false

runOnSave = false

The port where the server will listen for client and browser connections.

Default: 8501

port = 8501

Enables support for Cross-Origin Request Sharing, for added security.

Default: true

enableCORS = true

enableXsrfProtection = true

[browser]

Internet address of the server server that the browser should connect to. Can be IP address or DNS name.

Default: ‘localhost’

serverAddress = “localhost”

Whether to send usage statistics to Streamlit.

Default: true

gatherUsageStats = true

Port that the browser should use to connect to the server when in liveSave mode.

Default: whatever value is set in server.port.

serverPort = 8501

[s3]

Name of the AWS S3 bucket to save apps.

Default: (unset)

bucket =

URL root for external view of Streamlit apps.

Default: (unset)

url =

Access key to write to the S3 bucket.

Leave unset if you want to use an AWS profile.

Default: (unset)

accessKeyId =

Secret access key to write to the S3 bucket.

Leave unset if you want to use an AWS profile.

Default: (unset)

secretAccessKey =

Make the shared app visible only to users who have been granted view permission. If you are interested in this option, contact us at support@streamlit.io.

Default: false

requireLoginToView = false

The “subdirectory” within the S3 bucket where to save apps.

S3 calls paths “keys” which is why the keyPrefix is like a subdirectory. Use “” to mean the root directory.

Default: “”

keyPrefix = “”

AWS region where the bucket is located, e.g. “us-west-2”.

Default: (unset)

region =

AWS credentials profile to use.

Leave unset to use your default profile.

Default: (unset)

profile =

app.py

import streamlit as st

st.title(‘Hello!’)

Any suggestions will be more than appreciated in trying to get this run successfully via webapp.

Thanks.

Were you able to get your app running in Azure? I am running into the same issues. I have followed most of the older tutorials and I am getting the same results that you got.