Skip to content

TrafeX/docker-wordpress

Repository files navigation

WordPress Docker Container

Lightweight WordPress container with Nginx 1.28 & PHP-FPM 8.4 based on Alpine Linux.

WordPress version currently installed: 6.9

  • Used in production for many sites, making it stable, tested and up-to-date
  • Optimized for 100 concurrent users
  • Optimized to only use resources when there's traffic (by using PHP-FPM's ondemand PM)
  • Works with Amazon Cloudfront or CloudFlare as SSL terminator and CDN
  • Multi-platform, supporting AMD4, ARMv6, ARMv7, ARM64
  • Built on the lightweight Alpine Linux distribution
  • Small Docker image size (+/-90MB)
  • Uses PHP 8.4 for the best performance, low cpu usage & memory footprint
  • Can safely be updated without losing data
  • Fully configurable because wp-config.php uses the environment variables you can pass as an argument to the container

Docker Pulls nginx 1.28 php 8.4 License MIT

Trafex Consultancy

I can help you with Containerization, Kubernetes, Monitoring, Infrastructure as Code and other DevOps challenges.

Usage

Versioning

This image follows the Debian versioning convention for tagging: <wordpress-version>-<container-revision>

Available tags:

  • latest - Latest stable release
  • <major>.<minor>.<patch>-<revision> - Full version (e.g., 6.8.1-1, 6.8.1-2)
    • The first part (6.8.1) tracks the WordPress version included
    • The revision number (-1, -2) indicates container updates (security patches, dependency updates, configuration changes)
  • <major>.<minor>.<patch> - Latest container revision for a WordPress version (e.g., 6.8.16.8.1-2)
  • <major>.<minor> - Latest patch and revision (e.g., 6.86.8.1-2)
  • <major> - Latest minor, patch and revision (e.g., 66.8.1-2)

For production use, pin to a specific full version tag (e.g., trafex/wordpress:6.8.1-1) to ensure reproducible deployments and controlled updates.

Running the Container

See docker-compose.yml how to use it in your own environment.

docker-compose up

Or

docker run -d -p 80:80 -v /local/folder:/var/www/wp-content \
-e "DB_HOST=db" \
-e "DB_NAME=wordpress" \
-e "DB_USER=wp" \
-e "DB_PASSWORD=secret" \
-e "FS_METHOD=direct" \
trafex/wordpress

WP-CLI

This image includes wp-cli which can be used like this:

docker exec <your container name> /usr/local/bin/wp --path=/usr/src/wordpress <your command>

Inspired by