I am trying to deploy a streamlit app using Docker. I would like to be able to pass the port to the streamlit run command in my Docker container (I am currently using Docker CMD to run streamlit) as an environment variable. However, there are documented issues with passing environment variables to Docker CMD, and the suggested workaround is to use the sh -c form of CMD, see issues here and here. However, this does not work with streamlit. For example if I modify my streamlit run command to look like this CMD ["sh", "-c", "streamlit", "run", "app.py", "--server.port=${PORT}", "--server.address=0.0.0.0"] (where ENV port 8502), streamlit thinks I am trying to pass sh -c to it. Has anyone found a workaround for this issue?
Sounds like your docker ENTRYPOINT is specific to streamlit, if you’re able to share it someone might be able to point you in a better direction.
You might be able to get away with a CMD ["app.py", "--server.port=${PORT}", "--server.address=0.0.0.0"]
If you can change your dockerfile and add an entrypoint.sh script it might be the most straightforward way to extend these needs.
Thanks for stopping by! We use cookies to help us understand how you interact with our website.
By clicking “Accept all”, you consent to our use of cookies. For more information, please see our privacy policy.
Cookie settings
Strictly necessary cookies
These cookies are necessary for the website to function and cannot be switched off. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms.
Performance cookies
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us understand how visitors move around the site and which pages are most frequently visited.
Functional cookies
These cookies are used to record your choices and settings, maintain your preferences over time and recognize you when you return to our website. These cookies help us to personalize our content for you and remember your preferences.
Targeting cookies
These cookies may be deployed to our site by our advertising partners to build a profile of your interest and provide you with content that is relevant to you, including showing you relevant ads on other websites.