Skip to content
Merged
20 changes: 12 additions & 8 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# elecena.pl (c) 2015-2025

# https://hub.docker.com/_/php
ARG PHP_VERSION=8.4.13
ARG PHP_VERSION=8.5.0

# https://hub.docker.com/_/python/
ARG PYTHON_VERSION=3.14.0

# https://hub.docker.com/_/composer
ARG COMPOSER_VERSION=2.8.12
ARG COMPOSER_VERSION=2.9.2

FROM composer:$COMPOSER_VERSION AS php-composer
RUN /usr/bin/composer -v
Expand All @@ -16,6 +16,10 @@ RUN /usr/bin/composer -v
# PHP
#
FROM php:$PHP_VERSION-cli-alpine AS php

# check what's already installed
RUN php -v; php -m

RUN apk add \
bzip2-dev \
libsodium-dev \
Expand All @@ -28,13 +32,12 @@ RUN apk add \
# sendrecvmsg.c:128:19: error: invalid application of 'sizeof' to incomplete type 'struct cmsgcred'
#
# see https://github.com/docker-library/php/issues/1245#issuecomment-1019957169
ENV CFLAGS="$CFLAGS -D_GNU_SOURCE"
ENV CFLAGS="${CFLAGS:-} -D_GNU_SOURCE"

RUN docker-php-ext-install \
bz2 \
calendar \
exif \
opcache \
pcntl \
shmop \
soap \
Expand All @@ -45,10 +48,11 @@ RUN docker-php-ext-install \
xsl

# install yaml extensions from PECL
# https://pecl.php.net/package/yaml/2.2.4
# https://pecl.php.net/package-changelog.php?package=yaml
# https://pecl.php.net/package/yaml/2.3.0
RUN apk add --virtual build-deps autoconf gcc make g++ zlib-dev \
&& pecl channel-update pecl.php.net \
&& pecl install yaml-2.2.4 && docker-php-ext-enable yaml \
&& pecl install yaml-2.3.0 && docker-php-ext-enable yaml \
&& apk del build-deps

RUN which php; php -v; php -m; php -i | grep ini
Expand Down Expand Up @@ -81,8 +85,8 @@ ENV LD_PRELOAD="/usr/lib/preloadable_libiconv.so php-fpm php"
RUN php -r '$res = iconv("utf-8", "utf-8//IGNORE", "fooą");'

RUN php -v; php -m; php -i | grep ini
ENV PHP_VERSION $PHP_VERSION
ENV COMPOSER_VERSION $COMPOSER_VERSION
ENV PHP_VERSION=$PHP_VERSION
ENV COMPOSER_VERSION=$COMPOSER_VERSION

# add an info script
WORKDIR /opt
Expand Down
18 changes: 10 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,31 +6,30 @@ Python and PHP under the same roof (in **under 125 MB Docker image**).
https://github.com/elecena/python-php/pkgs/container/python-php

```
docker pull ghcr.io/elecena/python-php:3.14.0-8.4.13
docker pull ghcr.io/elecena/python-php:3.14.0-8.5.0
```

```
$ docker images | head
REPOSITORY TAG IMAGE ID CREATED SIZE
elecena/python-php latest adfd7d133180 1 second ago 117MB
elecena/python-php latest 68072de0a9cd 1 second ago 124MB
```

## Installed software

```
$ docker run -it elecena/python-php sh info.sh

### Python
Python 3.14.0
virtualenv 20.35.3 from /usr/local/lib/python3.14/site-packages/virtualenv/__init__.py
### PHP
PHP 8.4.13 (cli) (built: Oct 8 2025 22:45:03) (NTS)
PHP 8.5.0 (cli) (built: Nov 20 2025 19:49:31) (NTS)
Copyright (c) The PHP Group
Built by https://github.com/docker-library/php
Zend Engine v4.4.13, Copyright (c) Zend Technologies
with Zend OPcache v8.4.13, Copyright (c), by Zend Technologies
Composer version 2.8.12 2025-09-19 13:41:59
PHP version 8.4.13 (/usr/bin/php)
Zend Engine v4.5.0, Copyright (c) Zend Technologies
with Zend OPcache v8.5.0, Copyright (c), by Zend Technologies
Composer version 2.9.2 2025-11-19 21:57:25
PHP version 8.5.0 (/usr/bin/php)
Run the "diagnose" command to get more detailed diagnostics output.
[PHP Modules]
bz2
Expand All @@ -46,6 +45,7 @@ filter
hash
iconv
json
lexbor
libxml
mbstring
mysqlnd
Expand All @@ -71,13 +71,15 @@ standard
sysvsem
sysvshm
tokenizer
uri
xml
xmlreader
xmlwriter
xsl
yaml
Zend OPcache
zlib

[Zend Modules]
Zend OPcache
```