Local Development

All plugins include a docker-compose file for local development. Based on the features you enable, you will have different services.

Developing With Docker Locally

Starting The Site

You can start the local development site by running the command “docker-compose up -d” in the terminal. When this is done, you should be able to access the site, at http://localhost:6100 in your browser.

Helpful Commands

Here are some of the commands you can use to manage the local development environment.

Start server:

docker-compose up -d

Stop server:

docker-compose down

Remove containers:

docker-compose rm

Using WP-CLI

There is a service for using WP CLI inside of Docker. We prefix the command with “docker-compose run wpcli”.

Here are some examples:

Add a new user, who is an admin with username “admin” and password “pass”:

    docker-compose run wpcli wp user create admin admin@example.com --role=admin user_pass=pass`

Running WordPress Tests

If you enabled WordPress tests, there will be a special container for running those integration tests.

Changing The Port

In the plugin, their is a file called “docker-compose.yml”, which configures the local development environment.

In “services”, find the “wordpress” service. It should look like this

services:
  wordpress:
    depends_on:
      - wpdb
    image: wordpress:latest
    volumes:
      - wordpress_data:/var/www/html
      - ./:/var/www/html/wp-content/plugins/cat-facts
    ports:
      - "6100:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: wpdb:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress

In the “ports” entry we have “6100:80”. IF you want to use http://localhost:2112 as your URL, change that that “2112:80.” Make sure to save the file.

If you have already started the site, you will need to turn it off and back on again:

docker-compose down
docker-compose rm
docker-compose up -d

Before the colon is the port on your host machine, that’s why you use the localhost url including port 6100. After the colon is the port number inside the container. In this case — using the WordPress docker image that is port 80.