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")' |