This is an image with Linux (Ubuntu 18.04 LTS), Nginx, MySQL and PHP-FPM
- Multi Version: All supported PHP versions available
- Up-to-Date: Images auto-updated every week
- Secure: Cron job auto installed into containers to apply security updates every night;
- Green light to send emails: PHP mail() working like a charm;
- Schedule jobs: cron command installed;
Check out on Docker Hub
Source code on GitHub
Just create a docker-compose.yml on your application root path and run
docker-compose up -d
Configure your mysql database access to host 127.0.0.1, username root, no password and to database app
Your main application will be accessible on http://localhost/ and phpmyadmin on http://localhost/pma/
Note: If you are using zend framework 1 or 2, just modify docker-compose.yml volume to ./:/app/
web:
image: fbraz3/lnmp
volumes:
- ./:/app/public/
ports:
- "127.0.0.1:80:80"
- "127.0.0.1:3306:3306"
First of all, create a network called dockernet
using range 192.168.0.0/24
to get emails working over ssmtp email proxy.
# docker network create --subnet=192.168.0.0/24 dockernet
edit /etc/postfix/main.cf
and add 192.168.0.0/24 on mynetworks
params.
mynetworks = 127.0.0.0/8 192.168.0.0/24 [::ffff:127.0.0.0]/104 [::1]/128
Restart postfix
systemctl restart postfix
System reads /cronfile
file and installs using cron
.
To use it just add your commands to a single file and bind it to /cronfile
as follows.
[...]
volumes:
- /my/app/root/:/app
- /my/cronfile:/cronfile
[...]
- tag name = PHP Version
- latest = PHP 8.3