# Use an official Python runtime as a parent image FROM python:3.9-slim # Set the working directory to /app WORKDIR /app # make directory /app/files/ RUN mkdir /app/files/ RUN mkdir /app/ckpt/ # grant permission to write to /app/files/ RUN chmod 777 /app/files/ RUN chmod 777 /app/ckpt/ # Copy the requirements file into the container COPY requirements.txt . COPY serve_grobid.sh . # JAVA RUN apt-get update && \ apt-get install -y openjdk-11-jre-headless && \ apt-get clean; ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64/ ENV PATH $JAVA_HOME/bin:$PATH # Install any needed packages specified in requirements.txt RUN pip install --no-cache-dir -r requirements.txt # Copy the current directory contents into the container at /app COPY . /app # Expose port 7860 for the streamlit app to listen on EXPOSE 5000 EXPOSE 7860 # open the grobid server RUN apt-get update && \ apt-get install -y wget unzip RUN chmod +x serve_grobid.sh RUN ./serve_grobid.sh # open the backend server and streamlit app RUN chmod +x run.sh CMD ["bash" ,"run.sh"]