# Use an official Python runtime as a parent image FROM python:3.9-slim USER root # Set the working directory to /app RUN mkdir -m 777 -p /app/ WORKDIR /app # make directory /app/files/ RUN mkdir -m 777 -p /app/files/ RUN mkdir -m 777 -p /app/ckpt/ RUN mkdir -m 777 -p /.cache/huggingface/hub/ RUN mkdir -m 777 -p /.config/matplotlib/ RUN mkdir -m 777 -p /.gradle/ RUN mkdir -m 777 -p /opt/grobid/grobid-home/tmp RUN mkdir -m 777 -p /opt/grobid/logs # 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 # open the grobid server RUN apt-get update && \ apt-get install -y wget unzip RUN chmod +x serve_grobid.sh RUN ./serve_grobid.sh # Copy the current directory contents into the container at /app COPY . /app # Expose port EXPOSE 5000 EXPOSE 7860 EXPOSE 8070 RUN chmod +x /app/grobid-0.6.2/gradlew RUN mkdir -m 777 -p /app/.gradle/ RUN mkdir -m 777 -p /app/?/.gradle/ RUN mkdir -m 777 -p /app/grobid-0.6.2/ RUN mkdir -m 777 -p /app/grobid-0.6.2/?/.gradle/ RUN mkdir -m 777 -p /app/grobid-0.6.2/6.5.1/ RUN mkdir -m 777 -p /app/grobid-0.6.2/.gradle/ RUN mkdir -m 777 -p /app/grobid-0.6.2/.gradle/6.5.1/ RUN mkdir -m 777 -p /app/grobid-0.6.2/gradle-core/ RUN mkdir -m 777 -p /app/grobid-0.6.2/gradle-core/build/ RUN mkdir -m 777 -p /app/grobid-0.6.2/.gradle/6.5.1/fileHashes/ RUN chmod 777 /app/grobid-0.6.2/.gradle/6.5.1/fileHashes/fileHashes.lock RUN chmod -R 777 /app/grobid-0.6.2/ # open the backend server and streamlit app RUN chmod +x run.sh CMD ["bash" ,"run.sh"]