70 lines
1.5 KiB
Docker
70 lines
1.5 KiB
Docker
FROM php:8.3-fpm-alpine AS php_build
|
|
|
|
ENV COMPOSER_ALLOW_SUPERUSER=1
|
|
|
|
RUN set -eux; \
|
|
apk add --no-cache \
|
|
icu-libs \
|
|
libpng \
|
|
libjpeg-turbo \
|
|
freetype \
|
|
libzip \
|
|
bash \
|
|
shadow \
|
|
curl \
|
|
git; \
|
|
apk add --no-cache --virtual .build-deps \
|
|
$PHPIZE_DEPS \
|
|
icu-dev \
|
|
libpng-dev \
|
|
libjpeg-turbo-dev \
|
|
freetype-dev \
|
|
libzip-dev; \
|
|
docker-php-ext-configure gd --with-freetype --with-jpeg; \
|
|
docker-php-ext-install -j"$(nproc)" \
|
|
bcmath \
|
|
gd \
|
|
intl \
|
|
pcntl \
|
|
pdo_mysql \
|
|
zip \
|
|
opcache; \
|
|
pecl install redis; \
|
|
docker-php-ext-enable redis; \
|
|
apk del .build-deps
|
|
|
|
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
|
|
|
WORKDIR /var/www/html
|
|
|
|
COPY composer.json composer.lock ./
|
|
|
|
RUN set -eux; \
|
|
composer install --no-dev --prefer-dist --optimize-autoloader --no-interaction
|
|
|
|
COPY . .
|
|
|
|
RUN set -eux; \
|
|
mkdir -p storage/app/public storage/logs bootstrap/cache; \
|
|
chown -R www-data:www-data storage bootstrap/cache
|
|
|
|
FROM php_build AS php_app
|
|
|
|
EXPOSE 9000
|
|
|
|
CMD ["php-fpm"]
|
|
|
|
FROM nginx:alpine AS nginx
|
|
|
|
WORKDIR /var/www/html
|
|
|
|
COPY --from=php_app /var/www/html/public /var/www/html/public
|
|
COPY --from=php_app /var/www/html/storage/app/public /var/www/html/storage/app/public
|
|
|
|
COPY docker/nginx/default.conf /etc/nginx/conf.d/default.conf
|
|
|
|
EXPOSE 80
|
|
# syntax=docker/dockerfile:1
|
|
|
|
FROM php:8.3-fpm-alpine AS php_build
|