| FROM php:8.4-cli |
|
|
| ARG VITE_APP_NAME=Laravel |
| ARG RAG_API_BASE_URL=http://localhost/api/v1 |
| ARG RAG_CHAT_API_MODE=direct |
|
|
| ENV APP_NAME="${VITE_APP_NAME}" \ |
| 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 \ |
| RAG_API_BASE_URL="${RAG_API_BASE_URL}" \ |
| RAG_CHAT_API_MODE="${RAG_CHAT_API_MODE}" \ |
| VITE_APP_NAME="${VITE_APP_NAME}" |
|
|
| 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 |
|
|
| WORKDIR /home/user/app |
|
|
| COPY --chown=user:user . . |
|
|
| COPY entrypoint.sh /entrypoint.sh |
|
|
| RUN chmod +x /entrypoint.sh |
|
|
| USER user |
|
|
| RUN composer install --no-dev --optimize-autoloader --no-interaction --no-scripts \ |
| && php artisan package:discover --ansi \ |
| && php artisan config:clear \ |
| && php artisan route:clear \ |
| && npm ci \ |
| && npm run build \ |
| && rm -rf node_modules \ |
| && php artisan view:clear |
|
|
| EXPOSE 7860 |
|
|
| ENTRYPOINT ["/entrypoint.sh"] |
|
|