33 lines
1.5 KiB
Docker
33 lines
1.5 KiB
Docker
FROM php:8.3-fpm
|
|
|
|
# ---- system & PHP extensions -------------------------------------------------
|
|
RUN apt-get update && apt-get install -y \
|
|
nginx \
|
|
git unzip zip curl ca-certificates supervisor cron nano \
|
|
libpng-dev libjpeg62-turbo-dev libfreetype6-dev \
|
|
libonig-dev libxml2-dev libzip-dev libpq-dev libicu-dev libxslt-dev \
|
|
libsqlite3-dev sqlite3 default-mysql-client \
|
|
&& curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
|
|
&& apt-get install -y nodejs \
|
|
&& npm install -g npm \
|
|
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
|
&& docker-php-ext-install -j$(nproc) gd pdo_mysql zip bcmath intl xsl pcntl sockets \
|
|
&& docker-php-ext-install opcache \
|
|
&& pecl install redis && docker-php-ext-enable redis \
|
|
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
# ---- composer ---------------------------------------------------------------
|
|
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
|
|
|
# ---- config files -----------------------------------------------------------
|
|
COPY docker/php/php.ini /usr/local/etc/php/conf.d/custom-php.ini
|
|
COPY docker/php/opcache.ini /usr/local/etc/php/conf.d/opcache.ini
|
|
COPY docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
|
COPY docker/entrypoint.sh /entrypoint.sh
|
|
COPY docker/entrypoint.git.sh /entrypoint.git.sh
|
|
COPY docker/nginx/default.conf.template /etc/nginx/conf.d/default.conf
|
|
|
|
WORKDIR /var/www
|
|
|
|
RUN chmod +x /entrypoint.sh /entrypoint.git.sh
|
|
ENTRYPOINT ["/entrypoint.sh"] |