43 lines
1.7 KiB
Docker
43 lines
1.7 KiB
Docker
# Use the official PHP 8.2.16-fpm-bullseye base image
|
|
FROM php:8.2.16-fpm-bullseye
|
|
|
|
# Update package lists and install necessary packages
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
net-tools \
|
|
wget \
|
|
curl \
|
|
libssl-dev \
|
|
libnss3 \
|
|
nano \
|
|
procps \
|
|
nodejs \
|
|
gcc \
|
|
g++ \
|
|
make \
|
|
yarn && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Composer
|
|
RUN curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php && \
|
|
HASH=`curl -sS https://composer.github.io/installer.sig` && \
|
|
php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('/tmp/composer-setup.php'); } echo PHP_EOL;" && \
|
|
php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
|
|
rm -rf /tmp/composer-setup.php
|
|
|
|
# Add nodesource repository for Node.js
|
|
RUN curl -sL https://deb.nodesource.com/setup_20.x -o nodesource_setup.sh && \
|
|
bash nodesource_setup.sh && \
|
|
rm nodesource_setup.sh
|
|
|
|
# Add Yarn repository and key
|
|
RUN curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | tee /usr/share/keyrings/yarnkey.gpg >/dev/null && \
|
|
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | tee /etc/apt/sources.list.d/yarn.list
|
|
|
|
# Install PHP extensions using mlocati's script
|
|
RUN curl -sSLf -o /usr/local/bin/install-php-extensions https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \
|
|
chmod +x /usr/local/bin/install-php-extensions && \
|
|
install-php-extensions gd bz2 zip redis pdo_mysql mysqli mcrypt
|
|
|
|
WORKDIR /srv
|
|
USER root |