Spaces:
Sleeping
Sleeping
FROM julia:1.10.4 | |
# Install python requirements for the project as root | |
RUN apt-get update && apt-get install -y python3 python3-pip python3-venv | |
# Create a non-root user | |
RUN useradd --create-home --shell /bin/bash user | |
RUN mkdir /home/user/app | |
WORKDIR /home/user/app | |
RUN chown -R user:user /home/ | |
USER user | |
# Copy only the requirements file to leverage Docker cache | |
COPY --chown=user requirements.txt /home/user/app/requirements.txt | |
# Install pinecone and other Python dependencies as non-root user | |
RUN python3 -m venv /home/user/venv && \ | |
/home/user/venv/bin/pip install -r /home/user/app/requirements.txt | |
# Copy the rest of the application code | |
COPY --chown=user . /home/user/app | |
# Copy the data to the container | |
COPY --chown=user data /home/user/data | |
# Activate the virtual environment | |
RUN echo 'export PATH="/home/user/venv/bin:$PATH"' >> /home/user/.bashrc | |
RUN mkdir -p /home/user/.julia/config && \ | |
echo 'ENV["PYTHON"] = "/home/user/venv/bin/python"' >> /home/user/.julia/config/startup.jl | |
RUN mkdir -p /home/user/.julia/config | |
#COPY startup.jl /home/user/.julia/config/startup.jl | |
# Ensure the virtual environment is activated | |
RUN /home/user/venv/bin/pip install --upgrade pip | |
# Expose the port | |
EXPOSE 8000 | |
EXPOSE 80 | |
ENV JULIA_DEPOT_PATH "/home/user/.julia" | |
RUN julia -e 'using Pkg; Pkg.activate("."); Pkg.precompile()' | |
ENTRYPOINT julia --project -e 'using Pkg; Pkg.instantiate(); include("server.jl")' |