teknolis / Dockerfile
Codex
fix: restore entrypoint startup and remove unstable Apache uid override
c2a02c0
Raw
History Blame Contribute Delete
3.03 kB
FROM node:20-bookworm-slim AS frontend
WORKDIR /app
COPY package.json package-lock.json ./
COPY postcss.config.js tailwind.config.js vite.config.js ./
COPY resources ./resources
RUN npm ci && npm run build
FROM php:8.2-apache
# Install system dependencies
RUN apt-get update && apt-get install -y \
git \
unzip \
libsqlite3-dev \
libzip-dev \
zip \
libpng-dev \
libonig-dev \
libxml2-dev \
libjpeg-dev \
libfreetype6-dev \
libwebp-dev \
zlib1g-dev \
python3-pip \
ffmpeg \
curl \
&& pip3 install --no-cache-dir edge-tts "huggingface_hub[cli,hf_transfer]" --break-system-packages \
&& docker-php-ext-install pdo_mysql pdo_sqlite zip mbstring exif pcntl bcmath \
&& docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \
&& docker-php-ext-install -j$(nproc) gd \
&& a2enmod rewrite \
&& sed -i 's/max_execution_time = 30/max_execution_time = 300/' /usr/local/etc/php/php.ini-production \
&& sed -i 's/memory_limit = 128M/memory_limit = 512M/' /usr/local/etc/php/php.ini-production \
&& cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini
# Composer
COPY --from=composer:2.7 /usr/bin/composer /usr/bin/composer
WORKDIR /var/www/html
# Log and PID directories writable at runtime on HF Spaces.
ENV APACHE_LOG_DIR=/tmp
ENV APACHE_PID_FILE=/tmp/apache2.pid
ENV APACHE_RUN_DIR=/tmp
ENV APACHE_LOCK_DIR=/tmp
# Copy Apache config
COPY laravel.conf /etc/apache2/sites-available/000-default.conf
RUN echo "Listen 7860" > /etc/apache2/ports.conf
# Copy source code
COPY . /var/www/html
COPY --from=frontend /app/public/build /var/www/html/public/build
# Install PHP dependencies
RUN composer install --no-dev --optimize-autoloader --no-interaction
# Create runtime env
RUN cp .env.example .env \
&& sed -i 's|^APP_ENV=.*|APP_ENV=production|' .env \
&& sed -i 's|^APP_DEBUG=.*|APP_DEBUG=true|' .env \
&& sed -i 's|^APP_URL=.*|APP_URL=https://medilis-teknolis.hf.space|' .env \
&& sed -i 's|^DB_DATABASE=.*|DB_DATABASE=/var/www/html/database/database.sqlite|' .env \
&& sed -i 's|^FREEPIK_API_KEY=.*|FREEPIK_API_KEY=false|' .env \
&& sed -i 's|^TOOLS_HF_ONLY=.*|TOOLS_HF_ONLY=true|' .env \
&& php artisan key:generate --force
# Final database and permissions setup
RUN mkdir -p /var/www/html/database \
/var/www/html/storage/framework/cache/data \
/var/www/html/storage/framework/sessions \
/var/www/html/storage/framework/views \
/var/www/html/storage/logs \
&& touch /var/www/html/database/database.sqlite \
&& chmod -R 777 /var/www/html/storage /var/www/html/bootstrap/cache /var/www/html/database \
&& php artisan migrate --force \
&& php artisan db:seed --force \
&& php artisan storage:link --force \
&& chown -R www-data:www-data /var/www/html
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh
EXPOSE 7860
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]