@@ -2,12 +2,6 @@ FROM composer:2 AS composer
22
33FROM php:7.4-apache
44
5- RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
6- RUN php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
7- RUN php composer-setup.php
8- RUN php -r "unlink('composer-setup.php');"
9- RUN mv composer.phar /usr/local/bin/composer
10-
115RUN apt-get update && \
126 apt-get install -y \
137 libzip-dev \
@@ -22,43 +16,42 @@ RUN apt-get update && \
2216 libssl-dev \
2317 zlib1g-dev \
2418 libjpeg-dev \
25- libfreetype6-dev &&\
26- apt-get clean
19+ libfreetype6-dev \
20+ nodejs \
21+ npm && \
22+ apt-get clean && \
23+ rm -rf /var/lib/apt/lists/*
2724
28- RUN docker-php-ext-install \
29- pdo \
30- pdo_mysql \
31- zip \
32- gd && \
25+ RUN docker-php-ext-install pdo pdo_mysql zip gd && \
3326 a2enmod rewrite
3427
35- COPY ./docker/vhost.conf /etc/apache2/sites-available/000-default.conf
36- COPY ./ /var/www/html
3728
38- # Set working directory
29+ COPY --from=composer /usr/bin/composer /usr/local/bin/composer
30+
3931WORKDIR /var/www/html
4032
41- # Set correct permissions for Laravel
42- RUN chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache /var/www/html/public
43- RUN chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache /var/www/html/public
33+ COPY composer.json composer.lock ./
34+ RUN composer install --prefer-dist --no-scripts --no-autoloader
4435
36+ COPY package.json package-lock.json ./
4537
46- # Install Composer dependencies
47- RUN composer install --prefer-dist --optimize-autoloader
38+ RUN npm install
39+
40+ COPY . .
41+
42+
43+ RUN composer dump-autoload --optimize
44+
45+
46+ RUN npm run production
47+
48+ COPY ./docker/vhost.conf /etc/apache2/sites-available/000-default.conf
4849
49- # Generate Swagger documentation
50- RUN php artisan l5-swagger:generate
5150
52- # Set permissions for Laravel storage and cache
5351RUN mkdir -p storage/framework/sessions \
5452 storage/framework/views \
5553 storage/framework/cache \
56- && chmod -R 775 storage bootstrap/cache \
57- && chown -R www-data:www-data storage bootstrap/cache
54+ && chown -R www-data:www-data storage bootstrap/cache \
55+ && chmod -R 775 storage bootstrap/cache
5856
59- RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash - && \
60- apt-get install -y nodejs && \
61- node -v && npm -v
62-
63- RUN npm install
64- RUN npm run production
57+ RUN php artisan l5-swagger:generate
0 commit comments