Docker-compose for WordPress

WordPress is open-source software that you can use to easily create a beautiful website, blog, or app.



You can use my docker-compose file to set up WordPress with PHP 7.4., MySQL server and PHPMyAdmin. Before deploying grab the .env file with database parameters.

docker-compose.yml file:

version: '3.3'

services:
   db:
     image: mysql:latest
     volumes:
       - ./wordpress.sql:/docker-entrypoint-initdb.d/init.sql # prepopulate database
       - db_data:/var/lib/mysql # persist database data inside docker storage
     restart: "no"
     env_file:
      - .env
     environment:
      DOCKER_COMPOSE_YML_LOCATION: ${PWD}
     container_name: mysql_db

   phpmyadmin:
     image: phpmyadmin/phpmyadmin
     restart: "no"
     ports:
       - "9083:80"
     environment:
       PMA_HOST: db
       MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
       DOCKER_COMPOSE_YML_LOCATION: ${PWD}
     container_name: mysql_phpmyadmin

   wordpress:
     depends_on:
       - db
     image: wordpress:php7.4
     ports:
       - "9084:80"
     restart: "no"
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: ${MYSQL_USER}
       WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD}
       WORDPRESS_DB_NAME: ${MYSQL_DATABASE}
       DOCKER_COMPOSE_YML_LOCATION: ${PWD}
     volumes:
       - ./html:/var/www/html
     container_name: wordpress

volumes:
    db_data: {}


.env file:

MYSQL_ROOT_PASSWORD=DEFINE_MYSQL_ROOT_PASSWORD
MYSQL_DATABASE=DEFINE_MYSQL_DATABASE_NAME
MYSQL_USER=DEFINE_MYSQL_DATABASE_USER
MYSQL_PASSWORD=DEFINE_MYSQL_USER_PASSWORD


Source: https://github.com/gregorgodler/wordpress, https://hub.docker.com/_/mysql, https://hub.docker.com/_/wordpress, https://hub.docker.com/r/phpmyadmin/phpmyadmin