An open API service indexing awesome lists of open source software.

https://github.com/scaffoldeducation/php

Docker image with php-fpm running on Alpine Linux with extensions installed and support for JPG, PNG and WebP image formats.
https://github.com/scaffoldeducation/php

alpine docker jpg mongodb opcache php php8 png redis webp xdebug

Last synced: 16 days ago
JSON representation

Docker image with php-fpm running on Alpine Linux with extensions installed and support for JPG, PNG and WebP image formats.

Awesome Lists containing this project

README

          



Scaffold Education PHP


> Based on [**kooldev/php**](https://github.com/kool-dev/docker-php) docker image
> _from [Firework Web](https://github.com/fireworkweb)_


This is a Docker image created on top of [**php** official image](https://hub.docker.com/_/php) running on Alpine. It is a multi-environment/multi-purpose image that has several PHP extensions installed, such as MongoDB and Xdebug for example.
> For complete list of dependencies, see the [**Contents**](#contents) section.


- [Usage](#usage)
- [Tags](#tags)
- [Contents](#contents)
- [Features](#features)
- [Core](#core)
- [Libs](#libs)
- [PHP Extensions](#php-extensions)
- [Quality Tools](#quality-tools)
- [Development](#development)
- [Vulnerabilities](#vulnerabilities)


## Usage

```Dockerfile
FROM scaffoldeducation/php:latest
FROM scaffoldeducation/php:
```

> Notice that `scaffoldeducation/php:latest` will generate the same image as `scaffoldeducation/php:-prod` tag.


## Tags


> `Source code at`
> [**github.com/scaffoldeducation/php**](https://github.com/scaffoldeducation/php)


- `latest`, `8`, `8-prod`, `8.2`, `8.2-prod`, `8.2.26-prod`
- `8.2-dev`, `8.2.26-dev`
- `8.1`, `8.1-prod`, `8.1.31-prod`
- `8.1-dev`, `8.1.31-dev`
- `8.0`, `8.0-prod`, `8.0.30-prod`
- `8.0-dev`, `8.0.30-dev`


> **Warning**: It's not recommended to use 8.0 tags due to security vulnerabilities.

> **Note**: We'll add PHP 8.3 and 8.4 in future releases.


## Contents


### Features

- Supports JPG, PNG and WebP image formats
- Xdebug for debugging on dev environment
- Support for MongoDB and Redis


### Core

- Alpine Linux
- php
- composer


### Libs

- **system**
```
bash
freetype
gettext
ghostscript
gifsicle
icu
imagemagick
jpegoptim
less
libjpeg-turbo
libldap
libpng
libpq
libzip-dev
openssh-client
optipng
pngquant
procps
shadow
su-exec
```

- **dependencies**
```
freetype-dev
icu-dev
imagemagick-dev
libedit-dev
libjpeg-turbo-dev
libpng-dev
libwebp-dev
libwebp-tools
libxml2-dev
linux-headers
oniguruma-dev
openldap-dev
```


### PHP Extensions

- **`mysqli`**
- **`mongodb`**
- **`redis`**
- **`xdebug`** (only dev)
- `bcmath`
- `calendar`
- `exif`
- `gd`
- `imagick`
- `intl`
- `ldap`
- `mbstring`
- `opcache` (only prod)
- `pcntl`
- `pdo`
- `pdo_mysql`
- `soap`
- `sockets`
- `xml`
- `zip`


### Quality Tools

- **`phan`** `5.4.2`
- **`phpcpd`** `6.0.3`
- **`phpcs`** `3.7.2`
- **`php-cs-fixer`** `3.40.0`
- **`phpmd`** `2.14.1`
- **`phpstan`** `1.10.45`
- **`phpunit`** `9.6.13`


## Development

To include new features or fix some bugs, you can create a PR of your changes to this repository. You can test your changes locally with:

```sh
tests/pipeline.sh
```

in the root of the project. It'll run many build and test steps for each version. You can also run these scripts manually and independently. The pipeline script creates logs in `logs/pipeline.log` file.


## Vulnerabilities

The images are checked for vulnerabilities with `trivy`:
```sh
trivy image scaffoldeducation/php:8.2.27-prod --scanners vuln
2025-01-10T18:58:20-03:00 INFO [vuln] Vulnerability scanning is enabled
2025-01-10T18:58:20-03:00 INFO Detected OS family="alpine" version="3.21.2"
2025-01-10T18:58:20-03:00 WARN This OS version is not on the EOL list family="alpine" version="3.21"
2025-01-10T18:58:20-03:00 INFO [alpine] Detecting vulnerabilities... os_version="3.21" repository="3.21" pkg_num=140
2025-01-10T18:58:20-03:00 INFO Number of language-specific files num=0

scaffoldeducation/php:8.2.27-prod (alpine 3.21.2)

Total: 0 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 0, CRITICAL: 0)
```