How to set up a local WordPress development server using Docker1 min read

The following docker-compose.yml file setups a local WordPress docker instance alongside a MySql server and an Adminer web app which can be used as an alternative to PhpMyAdmin.

version: '3.9'
services:
  wp_mysql:
    image: mysql:latest
    container_name: wp_mysql
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password
    restart: on-failure
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: wp_db
      MYSQL_USER: wp_db_user
      MYSQL_PASSWORD: wp_db_user_pass
    ports:
      - "6033:3306"
    volumes:
      - wp_mysql_volume:/var/lib/mysql

  wp_app:
    image: wordpress:latest
    environment:
      WORDPRESS_DB_HOST: wp_mysql
      WORDPRESS_DB_USER: wp_db_user
      WORDPRESS_DB_PASSWORD: wp_db_user_pass
      WORDPRESS_DB_NAME: wp_db
    volumes:
      - ./wp-data:/var/www/html/
    restart: on-failure
    ports:
      - 8081:80
  adminer:
    image: adminer
    restart: on-failure
    ports:
      - 8082:8080
volumes:
  wp_mysql_volume:

Save the above file on your disk, and from within the command line, run the following command: docker-compose up (assuming you have already installed docker-compose and docker on your system).

After that, you can head to the following URL http://localhost:8081/  to install WordPress and use it later on. Using this URL http://localhost:8082/, you will be able to access Adminer to inspect or edit the newly created MySQL database. For Adminer, use the same credentials you have specified in the docker-compose file. Adminer_interface_with_wordpress_Docker

Note we are using the name of the MySQL service here in the Server field!

Happy coding 🙂

One response

  1. […] a previous post  I described how to set up a local WordPress dev server with an Adminer web app to control the Mysql […]

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Peshmerge.io-logo
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.