From 47c9129a76df6fc4f9935602226b0863cb9a1672 Mon Sep 17 00:00:00 2001 From: Mariano Filipoff Date: Fri, 3 Feb 2023 13:13:44 -0300 Subject: [PATCH] PHP 8.2 FPM - Nginx --- php-dev/8.2/Dockerfile | 15 +++++++ php-dev/8.2/conf.d/docker-php-ext-opcache.ini | 10 +++++ php-dev/8.2/conf.d/docker-php-ext-xdebug.ini | 8 ++++ php-dev/8.2/docker-compose.yml | 30 +++++++++++++ php-dev/8.2/nginx/conf.d/default.conf | 40 ++++++++++++++++++ php/8.2/Dockerfile | 42 +++++++++++++++++++ php/8.2/conf.d/docker-php-ext-opcache.ini | 4 ++ php/8.2/docker-compose.yml | 30 +++++++++++++ php/8.2/nginx/conf.d/default.conf | 40 ++++++++++++++++++ 9 files changed, 219 insertions(+) create mode 100644 php-dev/8.2/Dockerfile create mode 100644 php-dev/8.2/conf.d/docker-php-ext-opcache.ini create mode 100644 php-dev/8.2/conf.d/docker-php-ext-xdebug.ini create mode 100644 php-dev/8.2/docker-compose.yml create mode 100644 php-dev/8.2/nginx/conf.d/default.conf create mode 100644 php/8.2/Dockerfile create mode 100644 php/8.2/conf.d/docker-php-ext-opcache.ini create mode 100644 php/8.2/docker-compose.yml create mode 100644 php/8.2/nginx/conf.d/default.conf diff --git a/php-dev/8.2/Dockerfile b/php-dev/8.2/Dockerfile new file mode 100644 index 0000000..cc16d56 --- /dev/null +++ b/php-dev/8.2/Dockerfile @@ -0,0 +1,15 @@ +FROM digbang/php:8.2 + +LABEL version="1.0.0" +LABEL maintainer="Dario Govergun , Mariano Filipoff " + +# xdebug +RUN apk add --update linux-headers \ + && pecl install xdebug + +# Composer install +COPY --from=composer:2.5 /usr/bin/composer /usr/bin/composer + +# Setup www-data user +RUN apk add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data +RUN chown -R www-data:www-data ./ diff --git a/php-dev/8.2/conf.d/docker-php-ext-opcache.ini b/php-dev/8.2/conf.d/docker-php-ext-opcache.ini new file mode 100644 index 0000000..e44eaf6 --- /dev/null +++ b/php-dev/8.2/conf.d/docker-php-ext-opcache.ini @@ -0,0 +1,10 @@ +zend_extension=opcache.so + +[opcache] +opcache.enable=1 +opcache.revalidate_freq=0 +opcache.validate_timestamps=1 +opcache.max_accelerated_files=10000 +opcache.memory_consumption=192 +opcache.max_wasted_percentage=10 +opcache.interned_strings_buffer=16 diff --git a/php-dev/8.2/conf.d/docker-php-ext-xdebug.ini b/php-dev/8.2/conf.d/docker-php-ext-xdebug.ini new file mode 100644 index 0000000..c8df849 --- /dev/null +++ b/php-dev/8.2/conf.d/docker-php-ext-xdebug.ini @@ -0,0 +1,8 @@ +;zend_extension=xdebug.so + +xdebug.remote_enable=0 +xdebug.profiler_enable=0 +xdebug.remote_autostart=0 +xdebug.remote_connect_back=0 +xdebug.remote_handler=dbgp +xdebug.idekey=docker diff --git a/php-dev/8.2/docker-compose.yml b/php-dev/8.2/docker-compose.yml new file mode 100644 index 0000000..bacf7ed --- /dev/null +++ b/php-dev/8.2/docker-compose.yml @@ -0,0 +1,30 @@ +version: '3' + +services: + nginx: + image: nginx:1.23.3-alpine + ports: + - 80:80 + volumes: + - ./nginx/conf.d/:/etc/nginx/conf.d/ + - ./:/var/www/html/ + networks: + - app-network + working_dir: /var/www/html + command: nginx -g "daemon off;" + restart: unless-stopped + depends_on: + - php + + php: + build: . + volumes: + - ./conf.d/:/usr/local/etc/php/conf.d/ + - ./:/var/www/html/ + networks: + - app-network + working_dir: /var/www/html + +networks: + app-network: + driver: bridge diff --git a/php-dev/8.2/nginx/conf.d/default.conf b/php-dev/8.2/nginx/conf.d/default.conf new file mode 100644 index 0000000..c3a5e8f --- /dev/null +++ b/php-dev/8.2/nginx/conf.d/default.conf @@ -0,0 +1,40 @@ +server { + listen 80; + listen [::]:80; + server_name localhost; + root /var/www/html/public; + + add_header X-Frame-Options "SAMEORIGIN"; + add_header X-Content-Type-Options "nosniff"; + + index index.php; + + charset utf-8; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location = /favicon.ico { + access_log off; + log_not_found off; + } + + location = /robots.txt { + access_log off; + log_not_found off; + } + + error_page 404 /index.php; + + location ~ \.php$ { + fastcgi_pass php:9000; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include fastcgi_params; + } + + location ~ /\.(?!well-known).* { + deny all; + } +} diff --git a/php/8.2/Dockerfile b/php/8.2/Dockerfile new file mode 100644 index 0000000..685bae7 --- /dev/null +++ b/php/8.2/Dockerfile @@ -0,0 +1,42 @@ +FROM php:8.2-fpm-alpine + +LABEL version="1.0.0" +LABEL maintainer="Dario Govergun , Mariano Filipoff " + +# Essentials +RUN echo "UTC" > /etc/timezone + +RUN apk add --no-cache \ + freetype-dev \ + libpng-dev \ + libjpeg-turbo-dev \ + libxml2-dev \ + autoconf \ + g++ \ + imagemagick-dev \ + libtool \ + make \ + curl \ + sqlite \ + mysql-dev \ + postgresql-dev \ + libzip-dev \ + p7zip + +# Installing bash +RUN apk add bash +RUN sed -i 's/bin\/ash/bin\/bash/g' /etc/passwd + +# Installing PECL +RUN pecl install redis + +# Configure PHP +RUN mkdir -p /run/php/ +RUN touch /run/php/php8.2-fpm.pid + +# Configure PHP extensions +RUN docker-php-ext-install pdo pdo_pgsql pdo_mysql pgsql zip exif gd +RUN docker-php-ext-enable pdo pdo_pgsql pdo_mysql redis exif + +# Clear APK cache +RUN rm -rf /var/cache/apk/* diff --git a/php/8.2/conf.d/docker-php-ext-opcache.ini b/php/8.2/conf.d/docker-php-ext-opcache.ini new file mode 100644 index 0000000..204d04c --- /dev/null +++ b/php/8.2/conf.d/docker-php-ext-opcache.ini @@ -0,0 +1,4 @@ +zend_extension=opcache.so + +[opcache] +opcache.enable=1 diff --git a/php/8.2/docker-compose.yml b/php/8.2/docker-compose.yml new file mode 100644 index 0000000..bacf7ed --- /dev/null +++ b/php/8.2/docker-compose.yml @@ -0,0 +1,30 @@ +version: '3' + +services: + nginx: + image: nginx:1.23.3-alpine + ports: + - 80:80 + volumes: + - ./nginx/conf.d/:/etc/nginx/conf.d/ + - ./:/var/www/html/ + networks: + - app-network + working_dir: /var/www/html + command: nginx -g "daemon off;" + restart: unless-stopped + depends_on: + - php + + php: + build: . + volumes: + - ./conf.d/:/usr/local/etc/php/conf.d/ + - ./:/var/www/html/ + networks: + - app-network + working_dir: /var/www/html + +networks: + app-network: + driver: bridge diff --git a/php/8.2/nginx/conf.d/default.conf b/php/8.2/nginx/conf.d/default.conf new file mode 100644 index 0000000..c3a5e8f --- /dev/null +++ b/php/8.2/nginx/conf.d/default.conf @@ -0,0 +1,40 @@ +server { + listen 80; + listen [::]:80; + server_name localhost; + root /var/www/html/public; + + add_header X-Frame-Options "SAMEORIGIN"; + add_header X-Content-Type-Options "nosniff"; + + index index.php; + + charset utf-8; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location = /favicon.ico { + access_log off; + log_not_found off; + } + + location = /robots.txt { + access_log off; + log_not_found off; + } + + error_page 404 /index.php; + + location ~ \.php$ { + fastcgi_pass php:9000; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include fastcgi_params; + } + + location ~ /\.(?!well-known).* { + deny all; + } +}