61 lines
1.5 KiB
Docker
61 lines
1.5 KiB
Docker
FROM composer:2 AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
COPY composer.json composer.lock ./
|
|
|
|
RUN composer install \
|
|
--no-dev \
|
|
--no-scripts \
|
|
--no-interaction \
|
|
--optimize-autoloader \
|
|
--prefer-dist \
|
|
--ignore-platform-reqs
|
|
|
|
COPY . .
|
|
|
|
RUN composer dump-autoload --optimize --no-dev --ignore-platform-reqs
|
|
|
|
|
|
FROM dunglas/frankenphp:php8.4-alpine
|
|
|
|
COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer
|
|
|
|
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
|
|
|
|
RUN chmod +x /usr/local/bin/install-php-extensions \
|
|
&& apk add --no-cache git curl \
|
|
&& install-php-extensions \
|
|
pdo_mysql \
|
|
redis \
|
|
bcmath \
|
|
gd \
|
|
intl \
|
|
zip \
|
|
opcache \
|
|
pcntl \
|
|
sockets \
|
|
exif
|
|
|
|
RUN deluser www-data 2>/dev/null || true \
|
|
&& delgroup www-data 2>/dev/null || true \
|
|
&& addgroup -g 1000 www-data \
|
|
&& adduser -u 1000 -G www-data -s /bin/sh -D www-data
|
|
|
|
WORKDIR /var/www/html
|
|
|
|
COPY --from=builder --chown=www-data:www-data /app .
|
|
|
|
RUN mkdir -p storage/logs storage/framework/cache storage/framework/sessions \
|
|
storage/framework/views bootstrap/cache \
|
|
&& chown -R www-data:www-data storage bootstrap/cache \
|
|
&& chmod -R 775 storage bootstrap/cache
|
|
|
|
COPY docker/app/php.ini /usr/local/etc/php/conf.d/zz-app.ini
|
|
|
|
USER www-data
|
|
|
|
EXPOSE 80
|
|
|
|
CMD ["php", "artisan", "octane:start", "--server=frankenphp", "--host=0.0.0.0", "--port=80", "--admin-port=2019", "--workers=auto"]
|