Awesome
PHP Docker Container Images
Table of Contents
- Docker Images
- Environment Variables
- Build arguments
- PHP Extensions
- Tools
- Xdebug
- Changelog
- Users and permissions
- Crond
- SSHD
- Adding SSH key
- Complete PHP-based stack
- Images based on
wodby/php
- Orchestration Actions
Docker Images
❗For better reliability we release images with stability tags (wodby/php:8-X.X.X
) which correspond
to git tags. We strongly recommend using images only with stability tags.
About images:
- All images based on Alpine Linux
- Base image: official php
- GitHub actions builds
- Docker Hub
Supported tags and respective Dockerfile
links:
8.4
,8
,latest
(8/Dockerfile)8.3
(8/Dockerfile)8.2
(8/Dockerfile)8.1
(8/Dockerfile)8.4-dev
,8-dev
,dev
(8/Dockerfile)8.3-dev
(8/Dockerfile)8.2-dev
(8/Dockerfile)8.1-dev
(8/Dockerfile)8.4-dev-macos
,8-dev-macos
,dev-macos
(8/Dockerfile)8.3-dev-macos
(8/Dockerfile)8.2-dev-macos
(8/Dockerfile)8.1-dev-macos
(8/Dockerfile)
-dev
Images with -dev
tag have a few differences:
sudo
allowed for all commands forwodby
user- PHP source code available under
/usr/src/php.tar.xz
PHP_FPM_CLEAR_ENV
is set tono
by default- Additional packages installed: yarn
-dev-macos
Same as -dev
but the default user/group wodby
has uid/gid 501
/20
to match the macOS default user/group ids.
Supported architectures
All images built for linux/amd64
and linux/arm64
Environment Variables
PHP and PHP-FPM configuration
The default configuration not recommended for use for production environment:
"-" - Not available for this version
Additional configuration
Variable | Default value |
---|---|
GIT_USER_EMAIL | wodby@example.com |
GIT_USER_NAME | wodby |
HTTP_PROXY | |
SSH_PRIVATE_KEY | |
SSH_DISABLE_STRICT_KEY_CHECKING | |
SSHD_GATEWAY_PORTS | no |
SSHD_HOST_KEYS_DIR | /etc/ssh |
SSHD_LOG_LEVEL | INFO |
SSHD_PASSWORD_AUTHENTICATION | no |
SSHD_PERMIT_USER_ENV | yes |
SSHD_USE_DNS | yes |
SSMTP_MAILHUB | opensmtpd:25 |
SSMTP_FROM_LINE_OVERRIDE | Yes |
SSMTP_USE_TLS | No |
MSMTP_PORT | 25 |
MSMTP_TLS | off |
MSMTP_LOG | |
MSMTP_LOGFILE | /proc/self/fd/2 |
MSMTP_AUTH | off |
MSMTP_HOST | opensmtpd |
MSMTP_ADD_MISSING_DATE_HEADER | on |
Build arguments
Argument | Default value |
---|---|
PHP_VER | |
PHP_DEV | |
WODBY_GROUP_ID | 1000 |
WODBY_USER_ID | 1000 |
Change WODBY_USER_ID
and WODBY_GROUP_ID
mainly for local dev version of images, if it matches with existing system
user/group ids the latter will be deleted.
PHP Extensions
Extensions xdebug, xhprof and spx disabled by default, to change it override the default env
var PHP_EXTENSIONS_DISABLE=xdebug,xhprof,spx
.
Extension | 8.4 | 8.3 | 8.2 | 8.1 |
---|---|---|---|---|
amqp | 2.1.2 | 2.1.2 | 2.1.2 | 2.1.2 |
apcu | 5.1.24 | 5.1.24 | 5.1.24 | 5.1.24 |
ast | 1.1.2 | 1.1.2 | 1.1.2 | 1.1.2 |
bcmath | ||||
brotli | 0.15.2 | 0.15.2 | 0.15.2 | 0.15.2 |
bz2 | ||||
calendar | ||||
Core | ||||
ctype | ||||
curl | ||||
date | ||||
dom | ||||
ds | 1.5.0 | 1.5.0 | 1.5.0 | 1.5.0 |
exif | ||||
event | 3.1.4 | 3.1.4 | 3.1.4 | 3.1.4 |
fileinfo | ||||
filter | ||||
ftp | - | - | - | |
gd | ||||
grpc | 1.68.0 | 1.68.0 | 1.68.0 | 1.68.0 |
hash | ||||
iconv | ||||
igbinary | 3.2.16 | 3.2.16 | 3.2.16 | 3.2.16 |
imagick | master | master | master | master |
imap | 1.0.3 | 1.0.3 | 1.0.0 | 1.0.0 |
intl | ||||
json | ||||
ldap | ||||
libxml | ||||
mbstring | ||||
memcached | 3.2.0 | 3.2.0 | 3.2.0 | 3.2.0 |
mongodb | 1.20.0 | 1.20.0 | 1.20.0 | 1.20.0 |
mysqli | ||||
mysqlnd | ||||
newrelic | latest | latest | latest | latest |
OAuth | 2.0.9 | 2.0.9 | 2.0.9 | 2.0.9 |
openssl | ||||
opentelemetry | 1.1.0 | 1.1.0 | 1.1.0 | 1.1.0 |
pcov | - | latest | latest | latest |
pcntl | ||||
pcre | ||||
PDO | ||||
pdo_mysql | ||||
pdo_pgsql | ||||
pdo_sqlite | ||||
pdo_sqlsrv* | 5.12.0 | 5.12.0 | 5.12.0 | 5.12.0 |
pgsql | ||||
Phar | ||||
posix | ||||
rdkafka | 6.0.5 | 6.0.5 | 6.0.5 | 6.0.5 |
readline | ||||
redis | 6.1.0 | 6.1.0 | 6.1.0 | 6.1.0 |
Reflection | ||||
session | ||||
SimpleXML | ||||
smbclient | 1.1.1 | 1.1.1 | 1.1.1 | 1.1.1 |
soap | ||||
sockets | ||||
sodium | ||||
SPL | ||||
spx | 0.4.17 | 0.4.17 | 0.4.17 | 0.4.17 |
sqlite3 | ||||
sqlsrv* | 5.12.0 | 5.12.0 | 5.12.0 | 5.12.0 |
standard | ||||
tidy | ||||
tokenizer | ||||
uploadprogress | 2.0.2 | 2.0.2 | 2.0.2 | 2.0.2 |
uuid | 1.2.1 | 1.2.1 | 1.2.1 | 1.2.1 |
xdebug | 3.4.0beta1 | 3.3.2 | 3.3.2 | 3.3.2 |
xhprof | 2.3.10 | 2.3.10 | 2.3.10 | 2.3.10 |
xml | ||||
xmlreader | ||||
xmlwriter | ||||
xsl | ||||
yaml | 2.2.4 | 2.2.4 | 2.2.4 | 2.2.4 |
Zend OPcache | ||||
zip | ||||
zlib |
Legend:
- [EMPTY] – Core PHP extension
- "-" - Not exists in this version > Some extensions may not be available in
-dev
images
- sqlsrv extension has no arm64 support because the driver has no support for linux/arm64
Tools
Tool | 8.3 | 8.2 | 8.1 |
---|---|---|---|
Composer | latest | latest | latest |
Xdebug
By default, xdebug mode set to off
, which has close to 0 overhead. If you
want to disable the extension completely set PHP_EXTENSIONS_DISABLE=xdebug
.
Changelog
Changes per stability tag reflected in git tags description under releases.
Crond
You can run Crond with this image changing the command to sudo -E crond -f -d 0
and mounting a crontab file
to ./crontab:/etc/crontabs/www-data
. Example crontab file contents:
# min hour day month weekday command
*/1 * * * * echo "test" > /mnt/files/cron
SSHD
You can run SSHD with this image by changing the command to sudo /usr/sbin/sshd -De
and mounting authorized public
keys to /home/wodby/.ssh/authorized_keys
Adding SSH key
You can add a private SSH key to the container by mounting it to /home/wodby/.ssh/id_rsa
Users and permissions
Default container user is wodby:wodby
(UID/GID 1000
). PHP-FPM runs from www-data:www-data
user (UID/GID 82
) by
default. User wodby
is a part of www-data
group.
Codebase volume $APP_ROOT
(/var/www/html
) owned by wodby:wodby
. Files volume $FILES_DIR
(/mnt/files
) owned
by www-data:www-data
with 775
mode.
See https://github.com/wodby/php/issues/22 for more details.
Helper scripts
-
files_chmod
– in case you need write access forwodby
user to a file/dir generated bywww-data
on this volume runsudo files_chmod [FILEPATH]
script (FILEPATH must be under/mnt/files
), it will recursively change the mode toug=rwX,o=rX
-
files_chown
– in case you manually uploaded files underwodby
user to files volume and want to change the ownership of those files towww-data
runsudo files_chown [FILEPATH]
script (FILEPATH must be under/mnt/files
), it will recursively change ownership towww-data:www-data
Complete PHP-based stacks
Images based on wodby/php
- wodby/drupal-php
- wodby/wordpress-php
- wodby/adminer
- wodby/matomo
- wodby/cachet
- wodby/webgrind
- wodby/xhprof
Orchestration Actions
Usage:
make COMMAND [params ...]
commands:
migrate
check-ready [host max_try wait_seconds delay_seconds]
git-clone url [branch]
git-checkout target [is_hash]
files-import source
files-link public_dir
update-keys
walter
default params values:
is_hash 0
branch "" Branch, tag or hash commit