shinsenter/grav
🔋 (PHP / Grav) Production-ready Docker images with automatic Grav installer.
50K+
🔋 (PHP / Grav) Production-ready Docker images with automatic Grav installer.
The Docker images are available for both Debian and Alpine versions.
Our PHP Docker images, available on Docker Hub, are designed for easy configuration of PHP and PHP-FPM settings via environment variables. This approach eliminates the need to rebuild images when making configuration changes.
These images also come with the latest version of Composer, enabling you to start projects quickly without additional installations.
Check out our documentation to learn how to customize these Docker images for your projects.
When you mount an empty directory into the container, it will automatically download the entire source code for the framework, allowing you to bootstrap a new project quickly.
mkdir myproject
docker run -p 80:80 -p 443:443 -p 443:443/udp \
-v ./myproject:/var/www/html \
shinsenter/grav:latest
The container will detect the empty directory mounted to /var/www/html
and clone the framework source code into it.
You can mount your application code from your host machine to the /var/www/html
directory inside the container.
Because the source code is mounted as a volume, any changes made on the host machine will be reflected inside the container. This setup allows you to run builds, tests, and other tasks within the container while keeping your code on the host.
The Docker images come with pre-generated SSL certificate files for testing HTTPS locally:
To use valid HTTPS certificates for your production website, replace these files with your own valid SSL certificates. You can do this by copying or mounting your certificates from the host machine into the container. Simply overwrite the default certificate files with your valid certificate and key files to enable true HTTPS for your production website.
Using Dockerfile
FROM shinsenter/grav:latest
# Copy your own certs into the container
COPY my_domain.crt /etc/ssl/site/server.crt
COPY my_domain.key /etc/ssl/site/server.key
# Add your instructions here
# For example:
# ADD --chown=$APP_USER:$APP_GROUP ./myproject/ /var/www/html/
Using docker run
docker run -p 80:80 -p 443:443 -p 443:443/udp \
-v ./myproject:/var/www/html \
-v ./my_domain.crt:/etc/ssl/site/server.crt \
-v ./my_domain.key:/etc/ssl/site/server.key \
shinsenter/grav:latest
Using docker-compose
services:
web:
image: shinsenter/grav:latest
volumes:
- ./myproject:/var/www/html
- ./my_domain.crt:/etc/ssl/site/server.crt
- ./my_domain.key:/etc/ssl/site/server.key
The release versions on this GitHub repository don't guarantee that Docker images built from the same source code will always be identical.
We build new Docker images daily to ensure they stay up-to-date with the latest upstream updates for PHP, base OS, Composer, etc. The images in this repo are regularly updated under the same tag names.
But you can pull the image from shinsenter/grav:latest
,
and tag it with a name that indicates its stability,
such as your-repo/grav:stable
using the below commands:
docker pull shinsenter/grav:latest
docker tag shinsenter/grav:latest your-repo/grav:stable
docker push your-repo/grav:stable
Then use the image your-repo/grav:stable
as a base image to build containers for production.
If you find these images useful, consider donating via PayPal or opening an issue on GitHub.
Your support helps maintain and improve these images for the community.
This project is licensed under the terms of the GNU General Public License v3.0.
I appreciate you respecting my intellectual efforts in creating them. If you intend to copy or use ideas from this project, please give proper credit.
From Vietnam 🇻🇳 with love.
docker pull shinsenter/grav