Spaces:
Running
Running
| FROM julia:1.10-bookworm | |
| # HuggingFace Spaces requires user ID 1000 | |
| RUN useradd -m -u 1000 user | |
| # Shared Julia depot for package caching | |
| ENV JULIA_DEPOT_PATH=/opt/julia-depot | |
| RUN mkdir -p /opt/julia-depot && chmod 777 /opt/julia-depot | |
| # Copy project file first for dependency caching | |
| COPY --chown=user Project.toml /home/user/app/ | |
| # Install and precompile Julia packages (NNlib + JLD2 + HTTP + JSON3) | |
| RUN julia --project=/home/user/app -e ' \ | |
| using Pkg; \ | |
| Pkg.instantiate(); \ | |
| Pkg.precompile(); \ | |
| println("Precompile done")' | |
| # Copy application code | |
| COPY --chown=user model.jl /home/user/app/ | |
| COPY --chown=user checkpoint.jl /home/user/app/ | |
| COPY --chown=user server.jl /home/user/app/ | |
| # Create checkpoints directory (model downloads from HF at runtime) | |
| RUN mkdir -p /home/user/app/checkpoints && chown user:user /home/user/app/checkpoints | |
| # Switch to non-root user | |
| USER user | |
| ENV HOME=/home/user | |
| WORKDIR /home/user/app | |
| EXPOSE 7860 | |
| CMD ["julia", "--project=/home/user/app", "/home/user/app/server.jl"] | |