WordPress is one of the most popular content management systems (CMS) in the world, and for good reason. With its easy-to-use interface, customizable themes, and extensive plugin library, WordPress is the go-to platform for individuals and businesses looking to create a stunning website. It’s free, user-friendly, and versatile, allowing users to create a website for just about anything. Whether it’s a blog, an online store, or a portfolio, WordPress has got you covered. Plus, with its regular updates and strong community support, you can rest assured that your website will be secure and up-to-date. Overall, WordPress is awesome because it provides an accessible platform for anyone to create a beautiful and functional website without having to be an expert in web development.
The part that matters to most of us is how easy is it to install. well if you follow this tutorial it is very easy.
Install Docker
How to install Docker rootlessHow to install Docker rootless Install docker following our tutorial.
You can even run this in docker rootless!
How to install Docker rootlessHow to install Docker rootless
Create a Docker Compose File
Create a new directory for your WordPress project and create a docker-compose.yml file inside it. Paste the following code into the file:
version: '3'services: wordpress_caddy: image: caddy:alpine container_name: wordpress_caddy ports: - 80:80 - 443:443 depends_on: - wordpress_phpfpm volumes: - ./wordpress:/var/www/html - ./caddy_data:/data - ./caddy_config:/config - ./Caddyfile:/etc/caddy/Caddyfile networks: - net
wordpress_db: image: mariadb:10 container_name: wordpress_db volumes: - ./db:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: wordpress_r_p MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress restart: unless-stopped networks: - net
wordpress_phpfpm: image: wordpress:fpm #image: ghcr.io/kingpin/php-docker:8.1-fpm-alpine container_name: wordpress_phpfpm environment: WORDPRESS_DB_HOST: wordpress_db WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress restart: unless-stopped depends_on: - wordpress_db volumes: - ./wordpress:/var/www/html - ./php_override.ini:/usr/local/etc/php/conf.d/uploads.ini networks: - net
networks: net:Create a caddy Configuration File
create a new file called Caddyfile and copy these values in there.
example.com { root * /var/www/html php_fastcgi wordpress:9000 file_server}Make sure to edit example.com on line 1 to your domain or subdomain.
Create a php_override.ini file
Create a new file and call it php_override.ini, and put the following text in there. This lets you edit file upload size, and script execution times. needed for larger files.
file_uploads = Onmemory_limit = 500Mupload_max_filesize = 100Mpost_max_size = 100Mmax_execution_time = 600max_file_uploads = 50000max_execution_time = 5000max_input_time = 5000max_input_vars = 5000Start docker containers
docker compose up -dAccess your site
Once the containers are up and running, you can access WordPress by opening a web browser and navigating to http://example.com (replacing example.com with the domain you picked. This will lead you to a setup page where you initially pick your language.
Along the way, it should pick your DB info from the env variable we defined. if not you will enter your DB info with the following if you didnt edit it in the docker-compose.yml above.
-
Database host: wordpress_db
-
User: wordpress
-
Password: wordpress
-
Database Name: wordpress_db
-
Table Prefix: whatever you want it to be, you can leave it default of wp_
This should get you up and running!
You can reference https://wordpress.org/documentation/article/how-to-install-wordpress/[https://wordpress.org/documentation/article/how-to-install-wordpress/](https://wordpress.org/documentation/article/how-to-install-wordpress/) if you need more help.