Application build via Docker (Docker Desktop v29.2.1)#2077
Closed
ali-ichk wants to merge 4 commits intoGibbonEdu:v31.0.00from
Closed
Application build via Docker (Docker Desktop v29.2.1)#2077ali-ichk wants to merge 4 commits intoGibbonEdu:v31.0.00from
ali-ichk wants to merge 4 commits intoGibbonEdu:v31.0.00from
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR reviews and adds some changes to the the Dockerfile introduced by Zaidmasri in #2037, resolving some issues that prevented Gibbon from running correctly in a Docker environment.
Motivation and Context
Currently, setting up a local Gibbon development environment requires manually configuring PHP, Apache, and MySQL, which can be error-prone and inconsistent across operating systems (macOS, Windows, Linux).
This change solves the following problems:
Simplifies Onboarding: New contributors can spin up a fully working instance with a single command.
Dependency Management: Ensures all contributors use the exact same PHP version (8.2) and extensions (bcmath, intl, gd, etc.) required by Gibbon v31+.
Isolation: Keeps the database and application files isolated from the host machine, preventing system clutter.
How Has This Been Tested?
Tested locally on macOS (Apple Silicon) using Docker Desktop 29.2.1 with the following steps:
Built the image: docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up -d --build
Verified all required PHP extensions are present: docker exec gibbon_app php -m
Verified all PHP ini values meet Gibbon's requirements via php -r "echo ini_get(...)"
Verified AllowOverride All is active: docker exec gibbon_app grep AllowOverride /etc/apache2/apache2.conf
Verified Apache config syntax: docker exec gibbon_app apachectl configtest → Syntax OK
Verified Composer dependencies are satisfied: docker exec gibbon_app composer check-platform-reqs
Verified sensitive files ([.htaccess], [composer.json], [phpstan.neon], [gibbon.sql]) return 403
Confirmed Gibbon web installer loads at http://localhost:8888 with all system requirement checks passing
Confirmed database connection succeeds from the installer using the Docker Compose credentials