Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Thanassis Zannias - Flexible WordPress Dev Envi...

Thanassis Zannias - Flexible WordPress Dev Environment with Docker

More Decks by WordPress Greek Community

Other Decks in Technology

Transcript

  1. FLEXIBLE WORDPRESS DEV ENVIRONMENT WITH DOCKER One-command deployment for spinning

    up a WordPress site for development or presentation. Athanasios Zannias ICT Engineer - Msc CyberSecurity @ quadraweb.gr
  2. WORDPRESS DEV STILL SO HARD IN 2025? WordPress powers 43%

    of the web, but local development is still Slow Manual OS-dependent Every dev has faced: MAMP/XAMPP weirdness Broken plugins from PHP version mismatch Port collisions with other services “BUILDING, DWELLING, THINKING” MARTIN HEIDEGGER
  3. MEET DOCKER- WORDPRESS-DEV- ENV “A plug-and-play Docker environment for WordPress

    development — no manual setup, no surprises.” Pre-Configured .env file makes it easy to adjust key values Blueprint to define plugins, pages, and any other configurations Database persistence with Docker volumes Works cross-platform (Linux, macOS, WSL) NGINX MySQL Docker Compose phpMyAdmin
  4. HOW IT WORKS 1/2 wordpress webserver phpmyadmin db This setup

    is for local development only and should not be used in production environments. It lacks essential security configurations such as SSL, hardened permissions, and optimized performance for public-facing websites. Always ensure that sensitive data is kept secure and that best practices for security are followed in production setups. wp-cli
  5. WHY THIS MATTERS Setup time Team Collaboration Same environment across

    machines One-click reset or teardown Developers don’t need to touch Nginx, PHP, or MySQL manually No global installs — just Docker and git.
  6. WHAT BROKE (AND WHAT WE LEARNED) Permissions & File System

    Issues Docker volumes sometimes had permission conflicts on Mac/Linux, especially with mounted files like wp-content/. WordPress service occasionally started before MySQL was fully ready, leading to connection errors. Start-Up Race Conditions Added depends_on and a simple healthcheck loop bind volumes with correct permissions TEST ON MULTIPLE ENVIRONMENTS EARLY
  7. THE ROAD AHEAD PHP/MySQL/WordPress version switching via .env Docker healthchecks

    and monitoring SSL Support for HTTPS (mkcert) Mailhog for catching emails locally (e.g., password resets). OPEN TO PRS, FEATURE SUGGESTIONS, AND ISSUES. https://github.com/Quadraweb/docker-wordpress-dev-env