File size: 1,478 Bytes
9544071 48a66db 9544071 48a66db 9544071 48a66db 9544071 48a66db 879d729 48a66db 9544071 48a66db 9544071 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# Use an official Python runtime as a parent image
FROM python:3.11.1
# Set the working directory in the container
WORKDIR /usr/src/app
# Install poetry
RUN pip3 install poetry
# Copy only the necessary files for installing dependencies
COPY pyproject.toml poetry.lock ./
# Disable virtual environments creation by Poetry
# as the Docker container itself is an isolated environment
RUN poetry config virtualenvs.create false
# Install dependencies
# RUN pip3 install -r requirements.txt
RUN poetry install
# Copy the current directory contents into the container at /usr/src/app
COPY . .
# Make a port available to the world outside this container
# The EXPOSE instruction informs Docker that the container listens on the specified network ports at runtime. Your container needs to listen to Streamlit’s (default) port 8501.
EXPOSE 8501
# The HEALTHCHECK instruction tells Docker how to test a container to check that it is still working. Your container needs to listen to Streamlit’s (default) port 8501:
HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health
# An ENTRYPOINT allows you to configure a container that will run as an executable. Here, it also contains the entire streamlit run command for your app, so you don’t have to call it from the command line
ENTRYPOINT ["streamlit", "run", "Start.py", "--server.port=8501", "--server.address=0.0.0.0"]
# Execute with:
# docker build -t <image_name> .
# docker run -p 8501:8501 <image_name> |