- Docker Images
- Environment Variables
- Build arguments
- PHP Extensions
- Tools
- Changelog
- Users and permissions
- Crond
- SSHD
- Adding SSH key
- Complete PHP-based stack
- Images based on
wodby/php
- Orchestration Actions
❗For better reliability we release images with stability tags (wodby/php:8.0-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: php
- GitHub actions builds
- Docker Hub
Supported tags and respective Dockerfile
links:
8.0
,8
,latest
(8/Dockerfile)7.4
,7
(7/Dockerfile)7.3
(7/Dockerfile)8.0-dev
,8-dev
,dev
(8/Dockerfile)7.4-dev
,7-dev
(7/Dockerfile)7.3-dev
(7/Dockerfile)8.0-dev-macos
,8-dev-macos
,dev-macos
(8/Dockerfile)7.4-dev-macos
,7-dev-macos
(7/Dockerfile)7.3-dev-macos
(7/Dockerfile)
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
- Blackfire CLI installed
Same as -dev
but the default user/group wodby
has uid/gid 501
/20
to match the macOS default user/group ids.
The default configuration not recommended for use for production environment:
"-" - Not available for this version
Variable | Default value |
---|---|
GIT_USER_EMAIL |
[email protected] |
GIT_USER_NAME |
wodby |
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 |
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.
You can disable extension by listing them in $PHP_EXTENSIONS_DISABLE
separated by ,
, e.g. $PHP_EXTENSIONS_DISABLE=event,ds
Extension | 8.0 | 7.4 | 7.3 |
---|---|---|---|
amqp | - | 1.10.2 | 1.10.2 |
apcu | 5.1.18 | 5.1.18 | 5.1.18 |
ast | 1.0.10 | 1.0.10 | 1.0.10 |
blackfire | latest | latest | latest |
bcmath | |||
bz2 | |||
calendar | |||
Core | |||
ctype | |||
curl | |||
date | |||
dom | |||
ds | 1.3.0 | 1.3.0 | 1.3.0 |
exif | |||
ereg | - | - | - |
event | 3.0.2 | 3.0.2 | 3.0.2 |
fileinfo | |||
filter | |||
ftp | |||
gd | |||
grpc | 1.34.0 | 1.34.0 | 1.34.0 |
hash | |||
iconv | |||
igbinary | 3.1.5 | 3.1.5 | 3.1.5 |
imagick | - | 3.4.4 | 3.4.4 |
imap | |||
intl | |||
json | |||
ldap | |||
libxml | |||
mbstring | |||
mcrypt | 1.0.4 | 1.0.4 | 1.0.4 |
memcached | 3.1.5 | 3.1.5 | 3.1.5 |
mongodb | 1.9.0 | 1.9.0 | 1.9.0 |
mysql | - | - | - |
mysqli | |||
mysqlnd | |||
newrelic | - | latest | latest |
OAuth | 2.0.7 | 2.0.7 | 2.0.7 |
openssl | |||
pcov | latest | latest | latest |
pcntl | |||
pcre | |||
PDO | |||
pdo_mysql | |||
pdo_pgsql | |||
pdo_sqlite | |||
pdo_sqlsrv | - | 5.8.1 | 5.8.1 |
pgsql | |||
Phar | |||
posix | |||
rdkafka | 5.0.0 | 5.0.0 | 5.0.0 |
readline | |||
redis | 5.3.2 | 5.3.2 | 5.3.2 |
Reflection | |||
session | |||
SimpleXML | |||
soap | |||
sockets | |||
sodium | |||
SPL | |||
sqlite3 | |||
sqlsrv | - | ||
standard | |||
tideways_xhprof | 5.0.4 | 5.0.4 | 5.0.4 |
tidy | |||
tokenizer | |||
uploadprogress | - | 1.1.3 | 1.1.3 |
uuid | 1.1.0 | 1.1.0 | 1.1.0 |
xdebug | 3.0.2 | 3.0.2 | 3.0.2 |
xml | |||
xmlreader | |||
xmlrpc | - | ||
xmlwriter | |||
xsl | |||
yaml | 2.2.0 | 2.2.0 | 2.2.0 |
Zend OPcache | |||
zip | |||
zlib |
Legend:
- [EMPTY] – Core PHP extension
- "-" - Not exists in this version Some extensions may not be available in
-dev
images
Extensions xdebug, blackfire and xhprof disabled by default.
Tool | 8.0 | 7.4 | 7.3 |
---|---|---|---|
Composer | latest | latest | latest |
Changes per stability tag reflected in git tags description under releases.
You can run Crond with this image changing the command to sudo -E LD_PRELOAD=/usr/lib/preloadable_libiconv.so 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
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
You can add a private SSH key to the container by mounting it to /home/wodby/.ssh/id_rsa
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 wodby#22 for more details.
-
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
- wodby/drupal-php
- wodby/wordpress-php
- wodby/adminer
- wodby/matomo
- wodby/cachet
- wodby/webgrind
- wodby/xhprof
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