89 lines
1.9 KiB
Docker
89 lines
1.9 KiB
Docker
FROM php:8.5-fpm-alpine
|
|
|
|
# Copy composer.lock and composer.json
|
|
COPY composer.lock composer.json /var/www/
|
|
|
|
# Set working directory
|
|
WORKDIR /var/www
|
|
|
|
# # Install dependencies
|
|
RUN apk update && apk add --no-cache \
|
|
build-base \
|
|
libpng-dev \
|
|
libjpeg-turbo-dev \
|
|
freetype-dev \
|
|
zip \
|
|
jpegoptim optipng pngquant gifsicle \
|
|
vim \
|
|
unzip \
|
|
git \
|
|
curl \
|
|
libzip-dev \
|
|
oniguruma-dev \
|
|
icu-dev \
|
|
sqlite \
|
|
sqlite-dev \
|
|
nodejs \
|
|
npm
|
|
|
|
|
|
# # Clear cache
|
|
RUN rm -rf /var/cache/apk/*
|
|
|
|
# # Install extensions
|
|
RUN docker-php-ext-install mbstring zip exif pcntl intl pdo_sqlite
|
|
|
|
RUN docker-php-ext-install gd
|
|
|
|
# # Install composer
|
|
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
|
|
|
|
# Add user for laravel application
|
|
RUN addgroup -g 1000 www
|
|
RUN adduser -u 1000 -G www -s /bin/sh -D www
|
|
|
|
# # Copy existing application directory contents
|
|
COPY . /var/www
|
|
|
|
# # Copy existing application directory permissions
|
|
COPY --chown=www-data:www-data . /var/www
|
|
|
|
# # Install PHP dependencies
|
|
RUN composer install --no-dev --optimize-autoloader
|
|
|
|
# Install Node.js dependencies
|
|
RUN npm install
|
|
|
|
# Build assets
|
|
RUN npm run build
|
|
|
|
# Change ownership of /var/www to www-data
|
|
RUN chmod -R u+rw /var/www && chown -R www:www /var/www
|
|
|
|
# # RUN php artisan optimize
|
|
# # removed as it calls all 4 commands below and fails du to
|
|
# # multi-site configuration
|
|
|
|
# # Clear any cached configurations
|
|
RUN php artisan config:clear
|
|
# RUN php artisan cache:clear
|
|
RUN php artisan route:clear
|
|
RUN php artisan view:clear
|
|
|
|
# # Build optimizations
|
|
RUN php artisan config:cache
|
|
RUN php artisan event:cache
|
|
RUN php artisan view:cache
|
|
|
|
# # RUN php artisan route:cache
|
|
|
|
# # Run Laravel artisan command
|
|
RUN php artisan storage:link
|
|
|
|
# # RUN composer install --optimize-autoloader --no-dev
|
|
|
|
# # Change current user to www
|
|
USER www
|
|
|
|
# # Expose port 9000 and start php-fpm server
|
|
# EXPOSE 9000
|