Includes composer and drush, exposes PHP via fpm.
Use reload/php-fpm instead.
Xdebug is disabled pr. default but the extension is available and we ship with xdebug.remote_connect_back enabled (when the extension is enabled). To enable the xdebug-extension execute /usr/local/bin/xdebug-start via docker, eg:
docker exec -ti <container id> xdebug-startOr via docker-compose, eg. if the image is used by a service called fpm:
docker-compose exec fpm xdebug-startThe scripts enables xdebug and blocks until the user presses enter or terminates the script after which xdebug is disabled again.
The following PHP extensions will be enabled by default:
- calendar
- ctype
- curl
- dom
- exif
- fileinfo
- ftp
- gd
- gettext
- iconv
- json
- mcrypt
- mysqli
- mysqlnd
- opcache
- pdo
- pdo_mysql
- pdo_sqlite
- phar
- posix
- readline
- shmop
- simplexml
- soap
- sockets
- sqlite
- sysvmsg
- sysvsem
- sysvshm
- tokenizer
- wddx
- xml
- xmlreader
- xmlwriter
- xsl
- mbstring
- zip
If you want extra extensions enabled add a space separated list of
extensions to the environment variable PHP_EXTRA_EXTENSIONS.
If you want fewer extensions enabled list all the extensions you
want enabled in the environment variable PHP_DEFAULT_EXTENSIONS.
Currently the following extra extensions are supported:
- bcmath
- imagick
- intl
If the image is run with the environment-variable BLACKFIRE_SOCKET set a blackfire php-probe will be enabled and configured to use the socket. The variable is expected to point to a running blackfire agent.
Eg. do the following in a docker-compose.yml
version: "2"
services:
php:
image: ghcr.io/reload/docker-drupal-php7-fpm:8.1
ports:
- '9000:9000'
links:
- blackfire
environment:
BLACKFIRE_SOCKET: 'tcp://blackfire:8707'
blackfire:
image: blackfire/blackfire:2
ports:
- '8707:8707'
environment:
BLACKFIRE_SERVER_ID: 'INSERT-SERVER-ID-HERE'
BLACKFIRE_SERVER_TOKEN: 'INSERT-SERVER-TOKEN-HERE'
Or the following using a docker-compose.override.yml. (Notice that you have to include any original keys you want to preserve in an overriden array - the "db" link in the example below)
# file: docker-compose.yml
version: "2"
services:
php:
image: ghcr.io/reload/docker-drupal-php7-fpm:8.1
links:
- db
environment:
SOME_IMPORTANT_ENV: 'secret'
# file: docker-compose.override.yml
version: "2"
services:
php:
environment:
SOME_IMPORTANT_ENV: 'secret'
BLACKFIRE_SOCKET: 'tcp://blackfire:8707'
blackfire:
image: blackfire/blackfire:2
ports:
- '8707:8707'
environment:
BLACKFIRE_SERVER_ID: 'INSERT-SERVER-ID-HERE'
BLACKFIRE_SERVER_TOKEN: 'INSERT-SERVER-TOKEN-HERE'You can specify the path to the sendmail php should use to either setup a mail-catcher or disable mail-sending (set it to /bin/false).
You specify the path to sendmail via the PHP_SENDMAIL_PATH environment-variable. Eg. for a permanent setup via docker-compose.yml that has a mailhog container:
version: "2"
services:
php:
image: ghcr.io/reload/docker-drupal-php7-fpm:8.1
...
environment:
PHP_SENDMAIL_PATH: /usr/local/bin/mhsendmail --smtp-addr="mailhog:1025"
mailhog:
image: mailhog/mailhog
# Web-inteface exposed on port 8025
ports:
- "8025:8025"This can also be done via docker-compose.override.yml for temporary local setups, again, remember to bring over any environment-variables you want to maintain as variables added via docker-compose.override.yml's overrides the entire environment array.
# file: docker-compose.yml
version: "2"
services:
php:
image: ghcr.io/reload/docker-drupal-php7-fpm:8.1
...
environment:
SOME_IMPORTANT_ENV: 'secret'
# file: docker-compose.override.yml
version: "2"
services:
php:
environment:
SOME_IMPORTANT_ENV: 'secret'
PHP_SENDMAIL_PATH: /usr/local/bin/mhsendmail --smtp-addr="mailhog:1025"
mailhog:
image: mailhog/mailhog
ports:
- "8025:8025"In the above examples the mailhog interface will be accessible on port 8025.
Allows for waiting on containers, that containers created from these images depends upon.