50 lines
1.4 KiB
Docker
50 lines
1.4 KiB
Docker
FROM php:8.4-fpm
|
|
|
|
ARG UID=1000
|
|
ARG GID=1000
|
|
|
|
RUN apt update && apt install -y nginx git curl zip unzip supervisor libpq-dev libzip-dev libicu-dev; \
|
|
curl -fsSL https://deb.nodesource.com/setup_23.x -o nodesource_setup.sh; \
|
|
bash nodesource_setup.sh; \
|
|
apt install nodejs; \
|
|
pecl install xdebug; \
|
|
pecl install redis; \
|
|
docker-php-ext-install pdo_pgsql; \
|
|
docker-php-ext-install zip; \
|
|
docker-php-ext-install bcmath; \
|
|
docker-php-ext-install intl; \
|
|
docker-php-ext-enable xdebug; \
|
|
docker-php-ext-enable pcntl; \
|
|
docker-php-ext-enable redis; \
|
|
usermod -u $UID www-data; \
|
|
groupmod -g $GID www-data; \
|
|
apt clean; \
|
|
rm -rf /var/lib/{apt,dpkg,cache,log}/; \
|
|
apt clean autoclean; \
|
|
apt autoremove --yes
|
|
|
|
WORKDIR /var/www/html
|
|
|
|
COPY --from=composer:lts /usr/bin/composer /usr/local/bin/composer
|
|
COPY composer.json composer.lock ./
|
|
RUN composer install --no-dev --prefer-dist --no-autoloader --optimize-autoloader && rm -rf /root/.composer/cache/*
|
|
|
|
COPY nginx.conf /etc/nginx/sites-enabled/default
|
|
COPY supervisord.conf /etc/supervisord.conf
|
|
COPY entrypoint.sh /etc/entrypoint.sh
|
|
COPY ./ ./
|
|
RUN chown -R www-data:www-data /var/www
|
|
|
|
USER www-data
|
|
RUN composer dump-autoload; \
|
|
npm install; \
|
|
npm run build; \
|
|
npm cache clean --force; \
|
|
rm -rf node_modules
|
|
|
|
USER root
|
|
RUN rm -rf /tmp/* /var/tmp/*
|
|
|
|
EXPOSE 80
|
|
ENTRYPOINT [ "sh", "/etc/entrypoint.sh" ]
|