add docker
This commit is contained in:
56
Dockerfile
Normal file
56
Dockerfile
Normal file
@@ -0,0 +1,56 @@
|
||||
FROM node:18 AS node-base
|
||||
|
||||
# Development stage
|
||||
FROM node-base AS development
|
||||
WORKDIR /var/www
|
||||
COPY package*.json ./
|
||||
RUN npm install
|
||||
COPY . .
|
||||
EXPOSE 5173
|
||||
CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0"]
|
||||
|
||||
# Production stage
|
||||
FROM php:8.2-fpm AS production
|
||||
WORKDIR /var/www
|
||||
|
||||
# Install PHP extensions
|
||||
RUN apt-get update && apt-get install -y \
|
||||
git curl zip unzip libpng-dev libonig-dev libxml2-dev libzip-dev \
|
||||
&& docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd zip
|
||||
|
||||
# Install Node.js
|
||||
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \
|
||||
&& apt-get install -y nodejs
|
||||
|
||||
# Install Composer
|
||||
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
||||
|
||||
# Copy application files
|
||||
COPY . .
|
||||
|
||||
# Install dependencies
|
||||
RUN composer install --no-dev --optimize-autoloader
|
||||
|
||||
# Install and build frontend assets
|
||||
RUN npm install \
|
||||
&& npm run build \
|
||||
&& ls -la public/build \
|
||||
&& mkdir -p public/assets \
|
||||
&& cp -r public/build/* public/assets/ \
|
||||
&& ls -la public/assets \
|
||||
&& rm -rf node_modules \
|
||||
&& rm -rf public/build
|
||||
|
||||
# Laravel caches
|
||||
RUN php artisan config:clear \
|
||||
&& php artisan route:clear \
|
||||
&& php artisan view:clear \
|
||||
&& php artisan optimize
|
||||
|
||||
RUN php artisan storage:link
|
||||
|
||||
# Permissions
|
||||
RUN chown -R www-data:www-data /var/www && chmod -R 755 /var/www/storage /var/www/public
|
||||
|
||||
EXPOSE 9000
|
||||
CMD ["php-fpm"]
|
||||
Reference in New Issue
Block a user