share-lt/Dockerfile

90 lines
1.9 KiB
Text
Raw Normal View History

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