├── .travis.yml ├── Dockerfile ├── README.md └── docker-compose.yml /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: required 2 | services: docker 3 | script: 4 | - docker build -t nanoninja/php-fpm . 5 | after_script: 6 | - docker images -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8.1-fpm 2 | 3 | LABEL maintainer="Vincent Letourneau " 4 | 5 | RUN apt-get update && apt-get upgrade -y \ 6 | && apt-get install -y \ 7 | g++ \ 8 | libbz2-dev \ 9 | libc-client-dev \ 10 | libcurl4-gnutls-dev \ 11 | libedit-dev \ 12 | libfreetype6-dev \ 13 | libicu-dev \ 14 | libjpeg62-turbo-dev \ 15 | libkrb5-dev \ 16 | libldap2-dev \ 17 | libldb-dev \ 18 | libmagickwand-dev \ 19 | libmcrypt-dev \ 20 | libmemcached-dev \ 21 | libpng-dev \ 22 | libpq-dev \ 23 | libsqlite3-dev \ 24 | libssl-dev \ 25 | libreadline-dev \ 26 | libxslt1-dev \ 27 | libzip-dev \ 28 | memcached \ 29 | wget \ 30 | unzip \ 31 | zlib1g-dev \ 32 | && docker-php-ext-install -j$(nproc) \ 33 | bcmath \ 34 | bz2 \ 35 | calendar \ 36 | exif \ 37 | gettext \ 38 | mysqli \ 39 | opcache \ 40 | pdo_mysql \ 41 | pdo_pgsql \ 42 | pgsql \ 43 | soap \ 44 | xsl \ 45 | && docker-php-ext-configure gd --with-freetype --with-jpeg \ 46 | && docker-php-ext-install -j$(nproc) gd \ 47 | && PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ 48 | && docker-php-ext-install -j$(nproc) imap \ 49 | && docker-php-ext-configure intl \ 50 | && docker-php-ext-install -j$(nproc) intl \ 51 | && docker-php-ext-configure ldap \ 52 | && docker-php-ext-install ldap \ 53 | && docker-php-ext-configure zip \ 54 | && docker-php-ext-install zip \ 55 | && CFLAGS="$CFLAGS -D_GNU_SOURCE" docker-php-ext-install sockets \ 56 | && pecl install xmlrpc-1.0.0RC3 && docker-php-ext-enable xmlrpc \ 57 | && pecl install xdebug && docker-php-ext-enable xdebug \ 58 | && pecl install memcached && docker-php-ext-enable memcached \ 59 | && pecl install mongodb && docker-php-ext-enable mongodb \ 60 | && pecl install redis && docker-php-ext-enable redis \ 61 | && yes '' | pecl install imagick && docker-php-ext-enable imagick \ 62 | && docker-php-source delete \ 63 | && apt-get remove -y g++ wget \ 64 | && apt-get autoremove --purge -y && apt-get autoclean -y && apt-get clean -y \ 65 | && rm -rf /var/lib/apt/lists/* \ 66 | && rm -rf /tmp/* /var/tmp/* -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PHP-FPM Docker Image 2 | 3 | Docker container to install and run [PHP-FPM](https://php-fpm.org/). 4 | 5 | [![Build Status](https://travis-ci.org/nanoninja/php-fpm.svg?branch=master)](https://travis-ci.org/nanoninja/php-fpm) [![Automated Build](https://img.shields.io/docker/automated/jrottenberg/ffmpeg.svg)](https://hub.docker.com/r/nanoninja/php-fpm/builds/) 6 | 7 | ## Supported branches and respective Dockerfile links 8 | 9 | - master [Dockerfile](https://github.com/nanoninja/php-fpm/blob/master/Dockerfile) 10 | - 8.1 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/8.1/Dockerfile) 11 | - 8.0 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/8.0/Dockerfile) 12 | - 7.4.10 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/7.4.10/Dockerfile) 13 | - 7.4.4 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/7.4.4/Dockerfile) 14 | - 7.4.2 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/7.4.2/Dockerfile) 15 | - 7.4.0 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/7.4.0/Dockerfile) 16 | - 7.3.10 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/7.3.10/Dockerfile) 17 | - 7.3.9 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/7.3.9/Dockerfile) 18 | - 7.3.8 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/7.3.8/Dockerfile) 19 | - 7.3.7 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/7.3.7/Dockerfile) 20 | - 7.3.6 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/7.3.6/Dockerfile) 21 | - 7.3.3 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/7.3.3/Dockerfile) 22 | - 7.3.2 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/7.3.2/Dockerfile) 23 | - 7.2.15 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/7.2.15/Dockerfile) 24 | - 7.2.13 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/7.2.13/Dockerfile) 25 | - 7.2.2 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/7.2.2/Dockerfile) 26 | - 7.1.14 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/7.1.14/Dockerfile) 27 | - 5.6.40 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/5.6.40/Dockerfile) 28 | - 5.6.32 [Dockerfile](https://github.com/nanoninja/php-fpm/blob/5.6.32/Dockerfile) 29 | 30 | ## What is PHP-FPM 31 | 32 | PHP-FPM (FastCGI Process Manager) is an alternative FastCGI implementation for PHP. 33 | 34 | ## Getting image 35 | 36 | ```sh 37 | sudo docker image pull nanoninja/php-fpm 38 | ``` 39 | 40 | ## Running your PHP script 41 | 42 | Run the PHP-FPM image, mounting a directory from your host. 43 | 44 | ```sh 45 | sudo docker container run --rm -v $(pwd):/var/www/html nanoninja/php-fpm php index.php 46 | ``` 47 | 48 | ## Running as server 49 | 50 | ```sh 51 | sudo docker container run --rm --name phpfpm -v $(pwd):/var/www/html -p 3000:3000 nanoninja/php-fpm php -S="0.0.0.0:3000" -t="/var/www/html" 52 | ``` 53 | 54 | or using [Docker Compose](https://docs.docker.com/compose/) : 55 | 56 | ```sh 57 | version: '3' 58 | services: 59 | phpfpm: 60 | container_name: phpfpm 61 | image: nanoninja/php-fpm 62 | ports: 63 | - 3000:3000 64 | volumes: 65 | - /path/to/your/app:/var/www/html 66 | command: php -S="0.0.0.0:3000" -t="/var/www/html" 67 | ``` 68 | 69 | ### Logging 70 | 71 | ```sh 72 | sudo docker container logs phpfpm 73 | ``` 74 | 75 | ## Installed extensions 76 | 77 | ```bash 78 | sudo docker container run --rm nanoninja/php-fpm php -m 79 | ``` 80 | 81 | ### PHP Modules 82 | 83 | - bcmath 84 | - bz2 85 | - calendar 86 | - Core 87 | - ctype 88 | - curl 89 | - date 90 | - dom 91 | - exif 92 | - fileinfo 93 | - filter 94 | - ftp 95 | - gd 96 | - gettext 97 | - hash 98 | - iconv 99 | - imagick 100 | - imap 101 | - intl 102 | - json 103 | - ldap 104 | - libxml 105 | - mbstring 106 | - memcached 107 | - mongodb 108 | - mysqli 109 | - mysqlnd 110 | - openssl 111 | - pcre 112 | - PDO 113 | - pdo_mysql 114 | - pdo_pgsql 115 | - pdo_sqlite 116 | - pgsql 117 | - Phar 118 | - posix 119 | - readline 120 | - redis 121 | - Reflection 122 | - session 123 | - SimpleXML 124 | - soap 125 | - sockets 126 | - sodium 127 | - SPL 128 | - sqlite3 129 | - standard 130 | - tokenizer 131 | - xdebug 132 | - xml 133 | - xmlreader 134 | - xmlrpc 135 | - xmlwriter 136 | - xsl 137 | - Zend OPcache 138 | - zip 139 | - zlib 140 | 141 | ### Zend Modules 142 | 143 | - Xdebug 144 | - Zend OPcache -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | phpfpm: 4 | container_name: phpfpm 5 | image: nanoninja/php-fpm 6 | ports: 7 | - 3000:3000 8 | volumes: 9 | - ./:/var/www/html 10 | command: php -S="0.0.0.0:3000" -t="/var/www/html" --------------------------------------------------------------------------------