50 lines
1.2 KiB
Docker
50 lines
1.2 KiB
Docker
FROM php:8.1-fpm
|
|
|
|
ARG WWW_USER
|
|
ARG WWW_GROUP
|
|
ARG NODE_VERSION=16
|
|
|
|
# Set working directory
|
|
WORKDIR /var/www
|
|
|
|
# Install system dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
git \
|
|
curl \
|
|
libpng-dev \
|
|
libjpeg-dev \
|
|
libfreetype6-dev \
|
|
libonig-dev \
|
|
libxml2-dev \
|
|
libpq-dev \
|
|
libzip-dev \
|
|
libcurl4-openssl-dev \
|
|
zip \
|
|
unzip \
|
|
default-mysql-client
|
|
|
|
# Enable xdebug
|
|
RUN pecl install xdebug \
|
|
&& docker-php-ext-enable xdebug
|
|
|
|
# Install PHP extensions
|
|
RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
|
|
&& docker-php-ext-install pdo pdo_mysql mbstring exif pcntl bcmath gd zip curl intl
|
|
|
|
# Get latest Composer
|
|
RUN php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer
|
|
|
|
# Install Yarn
|
|
RUN curl -sL https://deb.nodesource.com/setup_$NODE_VERSION.x | bash - \
|
|
&& apt-get install -y nodejs \
|
|
&& npm install -g npm
|
|
|
|
# Clean cache
|
|
RUN apt-get -y autoremove \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
|
|
# Create user
|
|
RUN groupadd --force -g $WWW_GROUP webapp
|
|
RUN useradd -ms /bin/bash --no-user-group -g $WWW_GROUP -u $WWW_USER webapp
|