File size: 1,024 Bytes
18db312
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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"]