File size: 1,327 Bytes
5d245e8
 
d55729e
5d245e8
d55729e
5d245e8
bf9e062
1d48421
 
 
 
 
e31691c
1d48421
e31691c
bf9e062
8f6fffd
 
bf9e062
8f6fffd
5d245e8
d55729e
bf9e062
d55729e
 
 
bf9e062
d55729e
82c5e76
 
d55729e
 
 
 
 
bf9e062
5d245e8
 
d55729e
8f6fffd
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
37
38
39
40
41
# Dockerfile for Palisade Security Leaderboard on HuggingFace Spaces

FROM node:20-bookworm-slim

RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*

# Clone the leaderboard repository from GitHub
# HF Spaces mounts secrets at /run/secrets/<SECRET_NAME> during build
RUN --mount=type=secret,id=GITHUB_TOKEN,mode=0444 \
    if [ -f /run/secrets/GITHUB_TOKEN ]; then \
        GITHUB_TOKEN=$(cat /run/secrets/GITHUB_TOKEN) && \
        git clone https://${GITHUB_TOKEN}@github.com/highflame-ai/palisade-leaderboard.git /palisade-leaderboard; \
    else \
        git clone https://github.com/highflame-ai/palisade-leaderboard.git /palisade-leaderboard; \
    fi

# Use the existing 'node' user (UID 1000) that comes with the node image
RUN chown -R node:node /palisade-leaderboard

USER node

WORKDIR /palisade-leaderboard/frontend

# Install dependencies and build
RUN npm ci
RUN npm run build

# Copy static files to standalone directory (required for standalone mode)
RUN cp -r .next/static .next/standalone/.next/ && \
    (cp -r public .next/standalone/ 2>/dev/null || mkdir -p .next/standalone/public)

ENV NODE_ENV=production
ENV NEXT_TELEMETRY_DISABLED=1
ENV PORT=7860
ENV HOSTNAME="0.0.0.0"

EXPOSE 7860

# Use standalone server for better performance
CMD ["node", ".next/standalone/server.js"]