EN

Drupal v Dockeru

Status: Udržováno

Docker Compose starter pack pro Drupal 11. Kompletní vývojový stack — PHP 8.4, Nginx a MySQL 8.4 — který rozjede nový Drupal projekt během pár minut, aniž byste na hostitelský počítač cokoliv instalovali.

Podstatné je, že Docker není vedlejší nástroj, ale součást projektu. Adresář docker/ i docker-compose.yml leží přímo v repozitáři vedle Drupal code base a composer.json, a image se buildí z tohoto projektu. Prostředí se tak verzuje stejným gitem jako aplikace — nemůže se rozejít s kódem, který v něm má běžet, a jeden git clone přinese obojí najednou.

Hlavní body:

  • Docker uvnitř repozitáředocker/php/Dockerfile, docker/nginx/ i docker-compose.yml jsou verzované společně s Drupal code base; žádná externí konfigurace ani generovaný stack stranou
  • Tři služby v docker-compose.yml: PHP 8.4-FPM, Nginx 1.30 a MySQL 8.4 — porty i přihlašovací údaje v jednom .env
  • Multi-stage PHP image: vývojová vrstva s Xdebugem, produkční bez něj — přepíná jediná proměnná TARGET_ENV
  • Rozšíření pro Drupal předinstalovaná: gd (WebP/JPEG/FreeType), intl, opcache, apcu, pdo_mysql, pdo_pgsql, zip, xsl, bcmath, exif
  • Composer skeleton pro Drupal 11.4 s docrootem v web/, Drush 13, composer-patches a podporou receptů (recipes)
  • Bezpečnější default: kontejner běží pod www-data, ne rootem, s healthcheckem php-fpm -t; produkční build jede --no-dev s optimalizovaným autoloaderem
  • Kontrola kvality kódu z krabice — drupal/coder, PHP_CodeSniffer 4 a PHPUnit 11; Xdebug nakonfigurovaný pro VS Code

Open source. Kód je na GitHubu . Po cp .env.default .env a docker compose up -d běží Drupal na http://localhost:1577 — port se mění v .env.