File size: 2,078 Bytes
9e988d1 a88029f 9e988d1 a88029f |
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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# Use an official Python runtime as a parent image
FROM python:3.12.3
# Set up a new user named "user" with user ID 1000
RUN useradd -m -u 1000 user
# Switch to the "user" user
USER user
# Set home to the user's home directory
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH
# Set the working directory to the user's home directory
WORKDIR $HOME/app
# Try and run pip command after setting the user with `USER user` to avoid permission issues with Python
RUN pip install --no-cache-dir --upgrade pip
# Copy the current directory contents into the container at $HOME/app setting the owner to the user
COPY --chown=user . $HOME/app
# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
RUN apt-get install unzip &&\
apt-get install wget
RUN wget https://github.com/rordenlab/dcm2niix/releases/latest/download/dcm2niix_lnx.zip &&\
unzip dcm2niix_lnx.zip &&\
cp dcm2niix /usr/local/bin
RUN wget -O scaling_factors.csv https://github.com/deepakri201/DICOMScanClassification/releases/download/v1.0.0/scaling_factors.csv
RUN wget -O metadata_only_model.zip https://github.com/deepakri201/DICOMScanClassification/releases/download/v1.0.0/metadata_only_model.zip
RUN wget -O images_only_model.zip https://github.com/deepakri201/DICOMScanClassification/releases/download/v1.0.0/images_only_model.zip
RUN wget -O images_and_metadata_model.zip https://github.com/deepakri201/DICOMScanClassification/releases/download/v1.0.0/images_and_metadata_model.zip
RUN unzip "metadata_only_model.zip" -d "metadata_only_model/"
RUN unzip "images_only_model.zip" -d "images_only_model/"
RUN unzip "images_and_metadata_model.zip" -d "images_and_metadata_model/"
# Create the .streamlit directory
RUN mkdir -p .streamlit
# Create the config.toml file and set the maxMessageSize
RUN echo "\
[server]\n\
maxMessageSize = 2000\n\
" > .streamlit/config.toml
# Make port 8501 available to the world outside this container
EXPOSE 8501
# Run filter_data_app.py when the container launches
CMD streamlit run app.py |