All Projects → kool-dev → docker-php

kool-dev / docker-php

Licence: MIT license
Docker Images for PHP

Programming Languages

Dockerfile
14818 projects
shell
77523 projects
Blade
752 projects

Projects that are alternatives of or similar to docker-php

kool
From local development to the cloud: development workflow made easy.
Stars: ✭ 588 (+2252%)
Mutual labels:  kool

CI/CD

Description

Minimal PHP Docker image focused on Laravel applications. It's use is intended for kool.dev, but can fit in any other PHP use-case.

The images with Nginx include h5bp/server-configs-nginx with a hand picked set of configuration active by default. So if you want to change or add a new server configuration you can include h5bp/... as you see fit.

Usage

Simplest example:

asciicast

About composer

All images currently ship out with Composer 2.x as the default version. If for some reason you still need to use Composer 1.x and cannot make the upgrade, we still ship a composer1 in the images PATH as well, which is latest Composer 1.x version. Feel free to use it while you prepare to move to 2.0.

Available Tags

The image built is kooldev/php which has a bunch of tags available:

8.1

8.0

7.4

7.3

7.2

7.1

More flavours

We can always extend these images to suit them to our current use case. For example, we have a few extensions for specific use cases:

Environment Variables

Variable Default Value Description
ASUSER 0 Changes the user id that executes the commands
UID 0 Changes the user id that executes the commands (ignored if ASUSER is provided)
COMPOSER_ALLOW_SUPERUSER 1 Allows composer to run with super user
COMPOSER_MEMORY_LIMIT -1 Changes composer memory limit
ENABLE_XDEBUG false Enables the Xdebug extension
PHP_DATE_TIMEZONE UTC Changes timezone used by date/time functions
PHP_MEMORY_LIMIT 256M Changes PHP memory limit
PHP_MAX_INPUT_VARS 1000  Changes how many input variables may be accepted on PHP
PHP_UPLOAD_MAX_FILESIZE 25M Changes PHP maximum size of an uploaded file
PHP_POST_MAX_SIZE 25M Changes PHP max size of post data allowed
PHP_MAX_EXECUTION_TIME 30 Changes PHP maximum time is allowed to run a script
PHP_FPM_LISTEN 9000 Changes the PORT address of the FastCGI requests
PHP_FPM_MAX_CHILDREN 10 Changes the number of child processes to be used on FPM
PHP_FPM_REQUEST_TERMINATE_TIMEOUT 60 Changes FPM timeout to serve a single request

NGINX

Variable Default Value Description
NGINX_LISTEN 80 Changes the PORT address
NGINX_ROOT /app/public Changes NGINX root directive
NGINX_INDEX index.php Changes the index directive
NGINX_CLIENT_MAX_BODY_SIZE 25M Changes maximum allowed size of the client request body
NGINX_PHP_FPM unix:/run/php-fpm.sock Changes the address of a FastCGI server
NGINX_FASTCGI_READ_TIMEOUT 60s Changes a timeout for reading a response from the FastCGI server
NGINX_FASTCGI_BUFFERS 8 8k Changes the number and size of the buffers used for reading a response
NGINX_FASTCGI_BUFFER_SIZE 16k Changes the size of the buffer used for reading the first part of the response received

Usage

With docker run:

docker run -it --rm kooldev/php:7.4 php -v

With environment variables:

docker run -it --rm -e ENABLE_XDEBUG=true kooldev/php:7.4-prod php -v

With docker-compose.yml:

app:
  image: kooldev/php:7.4
  ports:
    - "9773:9773"
  volumes:
    - ".:/app:cached"
    - "$HOME/.ssh/id_rsa:/home/developer/.ssh/id_rsa:cached"
  environment:
    ASUSER: "${$UID}"

Contributing

Update images with templates

You should change fwd-template.json for configuration and template folder for the actual base templates.

After any changes, we need to run kool run template to parse the templates and generate all versions folder/files.

License

The MIT License (MIT). Please see License File for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].