Skip to content

Docker: Application build via Docker for development#2077

Merged
SKuipers merged 8 commits into
GibbonEdu:v31.0.00from
ali-ichk:dockerv31.0.00
Jun 17, 2026
Merged

Docker: Application build via Docker for development#2077
SKuipers merged 8 commits into
GibbonEdu:v31.0.00from
ali-ichk:dockerv31.0.00

Conversation

@ali-ichk

@ali-ichk ali-ichk commented Mar 17, 2026

Copy link
Copy Markdown
Contributor

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

@ali-ichk ali-ichk closed this Mar 17, 2026
@ali-ichk ali-ichk reopened this May 11, 2026
@ali-ichk ali-ichk assigned ali-ichk and unassigned ali-ichk May 11, 2026
ali-ichk added 2 commits May 11, 2026 15:31
…t setup so contributors can run Gibbon without manually installing and configuring PHP, Apache, and MySQL on their machine.
Comment thread up.sh Outdated
Comment thread ops/Dockerfile Outdated
Comment thread ops/Dockerfile Outdated
Comment thread ops/Dockerfile Outdated
Comment thread up.sh Outdated
@pli888

pli888 commented May 24, 2026

Copy link
Copy Markdown
Member

Hi @ali-ichk

Nice work, I've made some comments to try to speed up image building.

Looking ahead, we should think about how to restore the database with test data and also show how developers can run tests on this Docker-based Gibbon development environment. This can be done in separate PRs though.

Comment thread ops/docker-compose.dev.yaml Outdated
@ali-ichk ali-ichk changed the title Application build via Docker (Docker Desktop v29.2.1) Docker for Development: Application build via Docker (Docker Desktop v29.2.1) Jun 15, 2026
@ali-ichk ali-ichk changed the title Docker for Development: Application build via Docker (Docker Desktop v29.2.1) Docker for Development: Application build via Docker Jun 15, 2026
@ali-ichk ali-ichk changed the title Docker for Development: Application build via Docker Docker: Application build via Docker for development Jun 15, 2026
@ali-ichk

Copy link
Copy Markdown
Contributor Author

Hi @pli888 Thank you for your suggestions. I have made some changes based on your comments. If you have a moment, could you have a quick look and see if this looks okay to be merged to the core? Thank you for your time!!

@pli888 pli888 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. Happy to approve.

@ali-ichk ali-ichk requested review from pli888 and removed request for pli888 June 17, 2026 00:24

@SKuipers SKuipers left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @ali-ichk and @pli888 for working on this PR, I'm happy to approve and merge.

@SKuipers SKuipers merged commit 4216ce7 into GibbonEdu:v31.0.00 Jun 17, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants