Coder Social home page Coder Social logo

markotukiainen / docker-phpfpm Goto Github PK

View Code? Open in Web Editor NEW

This project forked from adhocore/docker-phpfpm

0.0 1.0 0.0 162 KB

Lightweight (~100mb) Docker PHP FPM on alpine 3.17 with PHP8.0.28/8.1.19/8.2.6 (also 7.4.33) with ~82-84 useful extensions (you can disable not necessary ones easily)

Home Page: https://hub.docker.com/r/adhocore/phpfpm

License: MIT License

Shell 16.55% PHP 2.37% Dockerfile 81.08%

docker-phpfpm's Introduction

docker-phpfpm

Docker build Tweet Support

Important Note: To be able to support arm builds (#81) we removed some big and slow to compile extensions like swoole/grpc/phalcon for now. Check example below how to add them back in your images based off on adhcore/phpfpm.

Docker PHP FPM with lean alpine base. The download size is just about ~100MB - tiny given how many extensions it has baked in.

It contains PHP>=8.2.5, PHP>=8.1.18 and PHP>=8.0.28 with plenty of common and useful extensions.

You can also continue using adhocore/phpfpm:7.4 for PHP7.4.33 but this version is now deprecated.

If you are looking for a complete local development stack then check adhocore/lemp.

It comes prepackaged with composer - both v1 and v2. Use composer command for v2 and composer1 for v1.

Usage

To pull latest image:

docker pull adhocore/phpfpm:8.2

# or for 8.1
docker pull adhocore/phpfpm:8.1

# or for php 8.0
docker pull adhocore/phpfpm:8.0

# or for php 7.4
docker pull adhocore/phpfpm:7.4

To use in docker-compose

# ./docker-compose.yml
version: '3'

services:
  phpfpm:
    image: adhocore/phpfpm:8.0
    container_name: phpfpm
    volumes:
      - ./path/to/your/app:/var/www/html
      # Here you can also volume php ini settings
      # - /path/to/zz-overrides:/usr/local/etc/php/conf.d/zz-overrides.ini
    ports:
      - 9000:9000
    environment:
      # ...

Composer

Latest versions of both Composer v1 and v2 are installed already. You can run v2 with composer and v1 with composer1.

Extensions

You can add new extensions in your image like so:

FROM adhocore/phpfpm:8.1 # or 8.2, 8.0

RUN \
  # setup
  apk add -U $PHPIZE_DEPS \
  #
  # if it is in pecl: \
  && docker-pecl-ext-install grpc phalcon swoole \
    && apk del $PHPIZE_DEPS \
  #
  # if it is in php ext: \
  && docker-php-source extract && docker-php-ext-install-if dba \
    && docker-php-source delete

Debug extension xdebug is installed but disabled by default for performance reason, just run docker-php-ext-enable xdebug to enable it again without having to rebuild/recompile.

Below you can find list of extensions by image tags.

PHP8.2

The following PHP extensions are installed in adhocore/phpfpm:8.2:

PHP >=8.2.5, Total extensions: 82
- apcu              - ast               - bcmath            - bz2
- calendar          - core              - ctype             - curl
- date              - dom               - ds                - ev
- exif              - fileinfo          - filter            - fpm
- ftp               - gd                - gettext           - gmp
- hash              - iconv             - igbinary          - imagick
- imap              - intl              - json              - ldap
- libxml            - lzf               - mbstring          - memcached
- mongodb           - msgpack           - mysqli            - mysqlnd
- oauth             - openssl           - pcntl             - pcov
- pcre              - pdo               - pdo_mysql         - pdo_pgsql
- pdo_sqlite        - pgsql             - phar              - posix
- pspell            - psr               - random            - rdkafka
- readline          - redis             - reflection        - session
- shmop             - simdjson          - simplexml         - soap
- sodium            - spl               - sqlite3           - ssh2
- standard          - sysvmsg           - sysvsem           - sysvshm
- tidy              - tokenizer         - uuid              - xdebug
- xhprof            - xlswriter         - xml               - xmlreader
- xmlwriter         - xsl               - yaml              - zend opcache
- zip               - zlib

PHP8.1

The following PHP extensions are installed in adhocore/phpfpm:8.1:

PHP >=8.1.18, Total extensions: 83
- apcu              - ast               - bcmath            - bz2
- calendar          - core              - ctype             - curl
- date              - dom               - ds                - ev
- exif              - fileinfo          - filter            - fpm
- ftp               - gd                - gettext           - gmp
- hash              - iconv             - igbinary          - imagick
- imap              - intl              - json              - ldap
- libxml            - lzf               - mbstring          - memcached
- mongodb           - msgpack           - mysqli            - mysqlnd
- oauth             - openssl           - pcntl             - pcov
- pcre              - pdo               - pdo_mysql         - pdo_pgsql
- pdo_sqlite        - pgsql             - phar              - posix
- pspell            - psr               - rdkafka           - readline
- redis             - reflection        - session           - shmop
- simdjson          - simplexml         - soap              - sockets
- sodium            - spl               - sqlite3           - ssh2
- standard          - sysvmsg           - sysvsem           - sysvshm
- tidy              - tokenizer         - uuid              - xdebug
- xhprof            - xlswriter         - xml               - xmlreader
- xmlwriter         - xsl               - yaf               - yaml
- zend opcache      - zip               - zlib

PHP8.0

The following PHP extensions are installed in adhocore/phpfpm:8.0:

PHP >=8.0.28, Total extensions: 84
- apcu              - ast               - bcmath            - bz2
- calendar          - core              - ctype             - curl
- date              - dom               - ds                - ev
- exif              - fileinfo          - filter            - fpm
- ftp               - gd                - gettext           - gmp
- hash              - iconv             - igbinary          - imagick
- imap              - intl              - json              - ldap
- libxml            - lzf               - mbstring          - memcached
- mongodb           - msgpack           - mysqli            - mysqlnd
- oauth             - openssl           - pcntl             - pcov
- pcre              - pdo               - pdo_mysql         - pdo_pgsql
- pdo_sqlite        - pgsql             - phalcon           - phar
- posix             - pspell            - psr               - rdkafka
- readline          - redis             - reflection        - session
- shmop             - simdjson          - simplexml         - soap
- sockets           - sodium            - spl               - sqlite3
- ssh2              - standard          - sysvmsg           - sysvsem
- sysvshm           - tidy              - tokenizer         - uuid
- xdebug            - xhprof            - xlswriter         - xml
- xmlreader         - xmlwriter         - xsl               - yaf
- yaml              - zend opcache      - zip               - zlib

PHP7.4

The following PHP extensions are installed in adhocore/phpfpm:7.4:

PHP >=7.4.33, Total extensions: 82
- apcu              - ast               - bcmath            - bz2
- calendar          - core              - ctype             - curl
- date              - dom               - ds                - ev
- exif              - fileinfo          - filter            - fpm
- ftp               - gd                - gettext           - gmp
- hash              - hrtime            - iconv             - igbinary
- imagick           - imap              - intl              - json
- ldap              - libxml            - lua               - lzf
- mbstring          - memcached         - mongodb           - msgpack
- mysqli            - mysqlnd           - oauth             - openssl
- pcntl             - pcov              - pcre              - pdo
- pdo_mysql         - pdo_pgsql         - pdo_sqlite        - pgsql
- phar              - posix             - psr               - rdkafka
- readline          - redis             - reflection        - session
- simdjson          - simplexml         - soap              - sockets
- sodium            - spl               - sqlite3           - ssh2
- standard          - sysvmsg           - sysvsem           - sysvshm
- tideways_xhprof   - tidy              - tokenizer         - uuid
- xdebug            - xlswriter         - xml               - xmlreader
- xmlwriter         - yaf               - yaml              - zend opcache
- zip               - zlib

Read more about pcov, psr

Production Usage

For production you may want to get rid of some extensions that are not really required. In such case, you can build a custom image on top adhocore/phpfpm:8.2 like so:

FROM adhocore/phpfpm:8.2 # or 8.1 or 8.0

# Disable extensions you won't need. You can add as much as you want separated by space.
RUN docker-php-ext-disable xdebug pcov ldap

docker-php-ext-disable is shell script available in adhocore/phpfpm only and not in official PHP docker images.

Extensions disabled can be re enabled with docker-php-ext-enable later again without the overhead of recompiling/rebuilding all over again.

docker-phpfpm's People

Contributors

adhocore avatar dependabot-preview[bot] avatar dependabot[bot] avatar rraab-dev avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.