Container WordPress được tùy chỉnh dựa trên Bitnami WordPress image với các cấu hình tối ưu cho môi trường production.
WordPress container này cung cấp:
wordpress/
├── README.md # Tài liệu hướng dẫn
├── docker-compose.yml # Cấu hình với MariaDB
├── docker-compose-mysql.yml # Cấu hình với MySQL
└── 6/
└── debian-12/
├── Dockerfile # WordPress 6 trên Debian 12
├── prebuildfs/ # Pre-build filesystem
└── rootfs/ # Root filesystem customizations
# Clone repository
git clone <repository-url>
cd nqdev-containers/nqdev/wordpress
# Khởi chạy với MariaDB
docker-compose up -d
# Hoặc build custom image
docker-compose up --build -d
# Sử dụng MySQL thay vì MariaDB
docker-compose -f docker-compose-mysql.yml up -d
# Build WordPress image từ Dockerfile
cd 6/debian-12
docker build -t nqdev/wordpress:6-debian-12 .
# Hoặc sử dụng docker-compose
docker-compose build wordpress
| Variable | Default | Description |
|---|---|---|
WORDPRESS_USERNAME | user | WordPress admin username |
WORDPRESS_PASSWORD | bitnami123 | WordPress admin password |
WORDPRESS_EMAIL | [email protected] | WordPress admin email |
WORDPRESS_FIRST_NAME | FirstName | Admin first name |
WORDPRESS_LAST_NAME | LastName | Admin last name |
WORDPRESS_BLOG_NAME | User's Blog! | Blog title |
| Variable | Default | Description |
|---|---|---|
WORDPRESS_DATABASE_HOST | mariadb | Database host |
WORDPRESS_DATABASE_PORT_NUMBER | 3306 | Database port |
WORDPRESS_DATABASE_USER | bn_wordpress | Database username |
WORDPRESS_DATABASE_PASSWORD | `` | Database password |
WORDPRESS_DATABASE_NAME | bitnami_wordpress | Database name |
| Variable | Default | Description |
|---|---|---|
ALLOW_EMPTY_PASSWORD | yes | Allow empty passwords (dev only) |
WORDPRESS_ENABLE_HTTPS | no | Enable HTTPS |
WORDPRESS_SKIP_BOOTSTRAP | no | Skip WordPress setup |
wordpress_data: WordPress files và uploadsmariadb_data/mysql_data: Database dataservices:
wordpress:
environment:
- WORDPRESS_ENABLE_HTTPS=yes
- WORDPRESS_EXTERNAL_HTTP_PORT_NUMBER=80
- WORDPRESS_EXTERNAL_HTTPS_PORT_NUMBER=443
volumes:
- "./certs:/opt/bitnami/apache/certs"
services:
wordpress:
environment:
- WORDPRESS_DATABASE_HOST=your-db-host.com
- WORDPRESS_DATABASE_PORT_NUMBER=3306
- WORDPRESS_DATABASE_USER=wordpress_user
- WORDPRESS_DATABASE_PASSWORD=secure_password
- WORDPRESS_DATABASE_NAME=wordpress_db
- ALLOW_EMPTY_PASSWORD=no
volumes:
wordpress_data:
driver: local
driver_opts:
type: none
o: bind
device: /opt/wordpress-data
# Truy cập container
docker-compose exec wordpress bash
# Sử dụng WP-CLI
wp --info
wp plugin list
wp theme list
wp user list
# Install plugin
wp plugin install woocommerce --activate
# Update WordPress
wp core update
# Backup WordPress files
docker run --rm -v wordpress_wordpress_data:/data -v $(pwd):/backup alpine \
tar czf /backup/wordpress-files-$(date +%Y%m%d).tar.gz -C /data .
# Backup database
docker-compose exec mariadb mysqldump -u bn_wordpress bitnami_wordpress > wordpress-db-$(date +%Y%m%d).sql
# Restore WordPress files
docker run --rm -v wordpress_wordpress_data:/data -v $(pwd):/backup alpine \
tar xzf /backup/wordpress-files-20241112.tar.gz -C /data
# Restore database
docker-compose exec -T mariadb mysql -u bn_wordpress bitnami_wordpress < wordpress-db-20241112.sql
# Xem logs
docker-compose logs -f wordpress
docker-compose logs -f mariadb
# Monitor resource usage
docker stats wordpress_wordpress_1 wordpress_mariadb_1
# Health check
curl -I http://localhost/wp-admin/install.php
Permission Issues
docker-compose exec wordpress chown -R bitnami:bitnami /bitnami/wordpress
Database Connection Error
# Check database status
docker-compose exec mariadb mysql -u root -p -e "SHOW DATABASES;"
# Reset database password
docker-compose exec mariadb mysql -u root -p -e "ALTER USER 'bn_wordpress'@'%' IDENTIFIED BY 'new_password';"
Memory Issues
# Increase PHP memory limit
echo "memory_limit = 512M" >> /opt/bitnami/php/etc/php.ini
services:
wordpress:
environment:
- WORDPRESS_DEBUG=yes
- WORDPRESS_DEBUG_LOG=yes
# /opt/bitnami/php/etc/php.ini
memory_limit = 512M
max_execution_time = 300
max_input_vars = 3000
upload_max_filesize = 64M
post_max_size = 64M
# Trong .htaccess hoặc virtual host
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
</IfModule>
Khi contribute vào project này:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)Project này sử dụng Apache 2.0 License. Xem file LICENSE để biết thêm chi tiết.
Lưu ý: Cấu hình mặc định phù hợp cho development environment. Đối với production, hãy đảm bảo:
ALLOW_EMPTY_PASSWORDContent type
Image
Digest
sha256:c472494f9…
Size
188 MB
Last updated
10 months ago
docker pull nqdev/wordpress