Image to run Symfony apps in docker
docker buildx build --tag davidetriso/symfony:[tagname-dir_name] -o type=image --platform=linux/arm64,linux/amd64 ./[tagname-dir_name]
E.g.:
docker buildx build --tag davidetriso/symfony:php-8.1-fpm -o type=image --platform=linux/arm64,linux/amd64 ./php-8.1-fpm
docker push davidetriso/symfony:tagname
E.g.:
docker push davidetriso/symfony:php-8.1-fpm
Execute the ./build-and-push.sh
script to build and push all images to Docker Hub at once.
This image is created starting from the official PHP Docker image. Look at the "How to use this image" section of the official image readme to learn how to configure and use this image.
The image uses a production-optimized php.ini file. To customize the PHP settings to your needs it is sufficient to bind-mount a custom ini file in the container's /usr/local/etc/php/conf.d/
directory.
E.g.:
symfony:
# ... other settings here ...
volumes:
# ... other volumes and mounts here ...
- ./my/custom/999-php.ini:/usr/local/etc/php/conf.d/999-php.ini:ro
The cron images facilitate the execution of tasks at regular intervals. They provide a convenient folder structure in the /etc/periodic
path, which includes the following subfolders:
- 1min
- 5min
- 10min
- 15min
- 20min
- 30min
- hourly
- daily
- weekly
- monthly
To schedule a task, simply place the script in one of the folders corresponding to the desired execution interval.
For instance, to run the php bin/console schedule:run
command every 5 minutes, create a script that invokes the command and copy the file to the /etc/periodic/5min
folder.
NOTE: Please ensure that the script has no file extension.
Here's an example of the run-schedule
script:
#!/bin/ash
php /var/www/html/bin/console schedule:run
In your configuration file, include the following volume mapping to make the script available in the container:
schedule_runner:
image: davidetriso/symfony:php-8.1-cron
# ... other settings here ...
volumes:
# ... other volumes and mounts here ...
- ./run-schedule:/etc/periodic/5min/run-schedule:rw
NOTE: When the container starts up, all scripts located in the subfolders of
/etc/periodic/
are made executable using thechmod
command. Hence, it is important to ensure that these files are writable by the container.
The XDebug
extension is available in the image, but is disabled by default. To enable it, use a custom ini
file, like explained above.
Licensed under the terms of the MIT license.