From 48adbc8841b85895861429cd3a01b5eb2dda663a Mon Sep 17 00:00:00 2001 From: Jonas Kaninda Date: Wed, 11 Oct 2023 15:15:44 +0200 Subject: [PATCH] Update PHP Version --- .github/workflows/build.yml | 11 ++++- README.md | 8 ++- src/docker/8.2/Dockerfile | 2 +- src/docker/8.3/Dockerfile | 99 +++++++++++++++++++++++++++++++++++++ 4 files changed, 117 insertions(+), 3 deletions(-) create mode 100644 src/docker/8.3/Dockerfile diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 58c63e9..40978aa 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -64,4 +64,13 @@ jobs: push: true platforms: linux/amd64,linux/arm64 tags: | - "${{env.BUILDKIT_IMAGE}}:8.2-alpine" \ No newline at end of file + "${{env.BUILDKIT_IMAGE}}:8.2-alpine" + - + name: Build and push 8.3 0RC3 + uses: docker/build-push-action@v3 + with: + file: "./src/docker/8.3/Dockerfile" + push: true + platforms: linux/amd64,linux/arm64 + tags: | + "${{env.BUILDKIT_IMAGE}}:8.3.0RC3" \ No newline at end of file diff --git a/README.md b/README.md index a563e9d..ca748ef 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,15 @@ - [Github](https://github.com/jkaninda/laravel-php-fpm) +## PHP Version: +- 8.3.0RC3 +- 8.2 +- 8.1 +- 8.0 +- 7.4 +- 7.2 ## Specifications: -* PHP 8.2 / 8.1 / 8.0 / 7.4 / 7.2 * Composer * OpenSSL PHP Extension * XML PHP Extension diff --git a/src/docker/8.2/Dockerfile b/src/docker/8.2/Dockerfile index 4f2f1ee..ff2d909 100644 --- a/src/docker/8.2/Dockerfile +++ b/src/docker/8.2/Dockerfile @@ -1,4 +1,4 @@ -FROM php:8.2.10-fpm +FROM php:8.2.11-fpm ARG WORKDIR=/var/www/html ENV DOCUMENT_ROOT=${WORKDIR} ENV LARAVEL_PROCS_NUMBER=1 diff --git a/src/docker/8.3/Dockerfile b/src/docker/8.3/Dockerfile new file mode 100644 index 0000000..ca5ac19 --- /dev/null +++ b/src/docker/8.3/Dockerfile @@ -0,0 +1,99 @@ +FROM php:8.3-rc-fpm +ARG WORKDIR=/var/www/html +ENV DOCUMENT_ROOT=${WORKDIR} +ENV LARAVEL_PROCS_NUMBER=1 +ENV NODE_MAJOR=20 +ARG HOST_UID=1000 +ENV USER=www-data +# Install system dependencies +RUN apt-get update && apt-get install -y \ + git \ + curl \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libmemcached-dev \ + libzip-dev \ + libpng-dev \ + libonig-dev \ + libxml2-dev \ + librdkafka-dev \ + libpq-dev \ + openssh-server \ + zip \ + unzip \ + supervisor \ + sqlite3 \ + nano \ + cron +# Install Nodejs +RUN apt-get update && apt-get install -y ca-certificates curl gnupg +RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg +RUN echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list +RUN apt-get update && apt-get install nodejs -y + +# Clear cache +RUN apt-get clean && rm -rf /var/lib/apt/lists/* +# Install Kafka +RUN git clone https://github.com/arnaud-lb/php-rdkafka.git\ + && cd php-rdkafka \ + && phpize \ + && ./configure \ + && make all -j 5 \ + && make install + +# Install Rdkafka and enable it +RUN docker-php-ext-enable rdkafka \ + && cd .. \ + && rm -rf /php-rdkafka + +# Install PHP extensions zip, mbstring, exif, bcmath, intl +RUN docker-php-ext-configure gd --with-freetype --with-jpeg +RUN docker-php-ext-install zip mbstring exif pcntl bcmath -j$(nproc) gd intl + +# Install Redis and enable it +RUN pecl install redis && docker-php-ext-enable redis + + + +# Install the php memcached extension +RUN pecl install memcached && docker-php-ext-enable memcached + +# Install the PHP pdo_mysql extention +RUN docker-php-ext-install pdo_mysql + +# Install the PHP pdo_pgsql extention +RUN docker-php-ext-install pdo_pgsql + +# Install PHP Opcache extention +RUN docker-php-ext-install opcache + + +# Install Composer +RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer + +# Set working directory +WORKDIR $WORKDIR + +RUN rm -Rf /var/www/* && \ +mkdir -p /var/www/html + +ADD src/index.php $WORKDIR/index.php +ADD src/php.ini $PHP_INI_DIR/conf.d/ +ADD src/opcache.ini $PHP_INI_DIR/conf.d/ +ADD src/supervisor/supervisord.conf /etc/supervisor/supervisord.conf + +COPY src/entrypoint.sh /usr/local/bin/ +RUN chmod +x /usr/local/bin/entrypoint.sh +RUN ln -s /usr/local/bin/entrypoint.sh / + +ENTRYPOINT ["entrypoint.sh"] + + + +RUN usermod -u ${HOST_UID} www-data +RUN groupmod -g ${HOST_UID} www-data + +RUN chmod -R 755 $WORKDIR +RUN chown -R www-data:www-data $WORKDIR +EXPOSE 9000 +CMD [ "entrypoint" ]