JuliaSLM / Dockerfile
LisaMegaWatts's picture
Upload folder using huggingface_hub
18db312 verified
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"]