browser-sec-lab/docker/php/Dockerfile
2026-07-03 21:38:27 +03:30

50 lines
942 B
Docker

# =========================
# Stage 1: Dependencies
# =========================
FROM composer:2 AS vendor
WORKDIR /app
COPY composer.json composer.lock ./
# install dependencies cleanly (NO MIRROR, NO DEV)
RUN composer install \
--no-dev \
--prefer-dist \
--no-interaction \
--optimize-autoloader
# =========================
# Stage 2: Runtime
# =========================
FROM php:8.2-fpm-bookworm
WORKDIR /var/www/html
# system deps
RUN apt-get update && apt-get install -y \
git \
unzip \
libzip-dev \
curl \
&& docker-php-ext-install pdo pdo_mysql zip \
&& rm -rf /var/lib/apt/lists/*
# copy vendor from stage 1
COPY --from=vendor /app/vendor ./vendor
# copy project files
COPY . .
# permissions
RUN chown -R www-data:www-data /var/www/html
# entrypoint
COPY ./docker/php/entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
EXPOSE 9000
CMD ["php-fpm"]