File size: 1,912 Bytes
b53f3f5
 
4065739
c9ae44c
3774c91
 
 
 
 
 
 
447c1f2
3774c91
b53f3f5
3774c91
b53f3f5
 
 
 
 
 
 
 
3774c91
 
 
 
 
 
 
 
 
b53f3f5
 
 
 
 
 
 
 
 
4065739
b53f3f5
4065739
3170830
 
 
b53f3f5
 
3170830
b53f3f5
3170830
 
 
4065739
3170830
 
 
4065739
bab0968
 
 
bda0661
bab0968
bda0661
 
bab0968
3170830
 
b53f3f5
3170830
3774c91
 
473d7b7
3774c91
 
b53f3f5
 
 
3170830
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
FROM php:8.4-cli

ENV APP_ENV=production \
    APP_DEBUG=false \
    APP_URL=http://localhost \
    LOG_CHANNEL=stderr \
    LOG_LEVEL=debug \
    SESSION_DRIVER=file \
    CACHE_STORE=file \
    QUEUE_CONNECTION=sync \
    DB_CONNECTION=sqlite \
    PORT=7860

RUN apt-get update && apt-get install -y \
    git unzip curl zip ca-certificates gnupg \
    libzip-dev \
    libpng-dev \
    libjpeg-dev \
    libfreetype6-dev \
    libonig-dev \
    libxml2-dev \
    libsqlite3-dev \
    && docker-php-ext-install \
    zip \
    pdo \
    pdo_mysql \
    pdo_sqlite \
    mbstring \
    exif \
    pcntl \
    bcmath \
    gd \
    && curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
    && apt-get install -y nodejs \
    && rm -rf /var/lib/apt/lists/*

COPY --from=composer:2 /usr/bin/composer /usr/bin/composer

RUN useradd -m -u 1000 user

ENV HOME=/home/user

RUN mkdir -p /home/user/app && chown user:user /home/user/app

COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

WORKDIR /home/user/app

USER user

# PHP deps — cached unless composer.lock changes
COPY --chown=user:user composer.json composer.lock ./
RUN composer install --no-dev --optimize-autoloader --no-interaction --no-scripts

# Node deps — cached unless package-lock.json changes
COPY --chown=user:user package.json package-lock.json ./
RUN npm ci

# Build-time variables (set as HuggingFace Space Variables, not Secrets)
ARG RAG_API_BASE_URL
ARG VITE_APP_NAME="RAG Hub"
ARG APP_KEY=base64:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
ENV RAG_API_BASE_URL=$RAG_API_BASE_URL \
    VITE_APP_NAME=$VITE_APP_NAME \
    APP_KEY=$APP_KEY

# Source code
COPY --chown=user:user . .

RUN php artisan package:discover --ansi \
    && php artisan config:clear \
    && php artisan route:clear \
    && npm run build \
    && rm -rf node_modules \
    && php artisan view:clear

EXPOSE 7860

ENTRYPOINT ["/entrypoint.sh"]