{"id":14600,"date":"2020-02-19T23:11:38","date_gmt":"2020-02-19T22:11:38","guid":{"rendered":"https:\/\/www.datanovia.com\/en\/?post_type=dt_lessons&#038;p=14600"},"modified":"2020-02-23T09:41:55","modified_gmt":"2020-02-23T08:41:55","slug":"wordpress-docker-setup-files-example-for-local-development","status":"publish","type":"dt_lessons","link":"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/","title":{"rendered":"WordPress Docker Setup Files: Example for Local Development"},"content":{"rendered":"<div id=\"rdoc\">\n<p>This article shows an example of <strong>WordPress Docker setup<\/strong> files for local development on either <em>Windows<\/em>, <em>MAC<\/em> or <em>Ubuntu<\/em>.<\/p>\n<p>The installation tool kit and setup files include:<\/p>\n<ul>\n<li><em>WordPress<\/em> files<\/li>\n<li><em>MariaDB\/MySQL<\/em> used for WordPress database<\/li>\n<li><em>phpMyAdmin<\/em> interface to connect to your MySQL database<\/li>\n<li><em>WP-Cli<\/em>: WordPress Command Line Interface<\/li>\n<li><em>Makefile<\/em> directives for automatization.<\/li>\n<\/ul>\n<p>You will learn:<\/p>\n<ul>\n<li>WordPress Docker directory structure<\/li>\n<li>Docker-compose and WP-Cli configuration files<\/li>\n<li>Installing WordPress using docker-compose<\/li>\n<\/ul>\n<p>Contents:<\/p>\n<div id=\"TOC\">\n<ul>\n<li><a href=\"#step-1.-download-a-wordpress-docker-setup-template\">Step 1. Download a WordPress Docker setup template<\/a><\/li>\n<li><a href=\"#step-2.-inspect-the-content-of-the-configuration-files\">Step 2. Inspect the content of the configuration files<\/a>\n<ul>\n<li><a href=\"#docker-compose-configuration-file\">docker-compose configuration file<\/a><\/li>\n<li><a href=\"#wp-cli-dockerfile-and-configuration-file\">WP Cli Dockerfile and configuration file<\/a><\/li>\n<li><a href=\"#make-commands-for-automatic-wordpress-setup\">Make commands for automatic WordPress setup<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#step-3.-edit-the-wordpress-docker-setup-environment-variables\">Step 3. Edit the WordPress Docker setup environment variables<\/a><\/li>\n<li><a href=\"#step-4.-install-wordpress-using-docker-compose\">Step 4. Install WordPress using docker compose<\/a><\/li>\n<li><a href=\"#step-5.-shutdown-and-cleanup\">Step 5. Shutdown and cleanup<\/a><\/li>\n<li><a href=\"#summary\">Summary<\/a><\/li>\n<li><a href=\"#references\">References<\/a><\/li>\n<\/ul>\n<\/div>\n<div id=\"step-1.-download-a-wordpress-docker-setup-template\" class=\"section level2\">\n<h2>Step 1. Download a WordPress Docker setup template<\/h2>\n<p><strong>Download a template<\/strong> from Github at: <a href=\"https:\/\/github.com\/kassambara\/wordpress-docker-compose\">kassambara\/wordpress-docker-compose<\/a><\/p>\n<pre class=\"bash\"><code>git clone https:\/\/github.com\/kassambara\/wordpress-docker-compose\r\ncd wordpress-docker-compose<\/code><\/pre>\n<p><strong>Project directory structure<\/strong>:<\/p>\n<pre><code>files\/wordpress-docker-compose\r\n\u251c\u2500\u2500 LICENSE\r\n\u251c\u2500\u2500 Makefile\r\n\u251c\u2500\u2500 README.Rmd\r\n\u251c\u2500\u2500 README.md\r\n\u251c\u2500\u2500 config\r\n\u2502   \u2514\u2500\u2500 php.conf.ini\r\n\u251c\u2500\u2500 docker-compose-onlinehost.yml\r\n\u251c\u2500\u2500 docker-compose.yml\r\n\u251c\u2500\u2500 mysql\r\n\u251c\u2500\u2500 wordpress\r\n\u251c\u2500\u2500 wp-auto-config.yml\r\n\u2514\u2500\u2500 wpcli\r\n    \u251c\u2500\u2500 Dockerfile\r\n    \u251c\u2500\u2500 Makefile\r\n    \u2514\u2500\u2500 entrypoint.sh<\/code><\/pre>\n<p><strong>Essential folders<\/strong>:<\/p>\n<ul>\n<li><strong>mysql<\/strong>: MySQL database files for MariaDB<\/li>\n<li><strong>wordpress<\/strong>: WordPress web files<\/li>\n<li><strong>wpcli<\/strong> contains a Dockerfile example to build WordPress CLI.<\/li>\n<\/ul>\n<p><strong>Essential files<\/strong>:<\/p>\n<ul>\n<li><strong>.env<\/strong> file: contain the environment variables required for the wordpress installation<\/li>\n<li><strong>docker-compose.yml<\/strong>: WordPress docker compose application services<\/li>\n<li><strong>Makefile<\/strong>: Set of simple bash command lines to build, install and configure WordPress, as well as, to start and stop the docker containers.<\/li>\n<\/ul>\n<\/div>\n<div id=\"step-2.-inspect-the-content-of-the-configuration-files\" class=\"section level2\">\n<h2>Step 2. Inspect the content of the configuration files<\/h2>\n<p>We\u2019ll inspect the following configuration files:<\/p>\n<ol style=\"list-style-type: decimal\">\n<li><code>.\/docker-compose.yml<\/code>: Defines docker services for running wordpress<\/li>\n<li><code>.\/wplci\/Dockerfile<\/code> and <code>.\/wpcli\/Makefile<\/code>: Provides command lines options to manipulate wordpress database<\/li>\n<li><code>.\/Makefile<\/code>: Provides <code>make<\/code> commands to start, install and autoinstall wordpress.<\/li>\n<\/ol>\n<div id=\"docker-compose-configuration-file\" class=\"section level3\">\n<h3>docker-compose configuration file<\/h3>\n<p>Inspect the content of the <code>docker-compose.yml<\/code> file, which defines 4 services:<\/p>\n<ul>\n<li>WordPress\/PHP<\/li>\n<li>MySQL database<\/li>\n<li>phpMyAdmin interface to the database<\/li>\n<li>wpcli: WordPress command line interface<\/li>\n<li>healthcheck, which check whether services (MySQL, wordpress) are ready<\/li>\n<\/ul>\n<pre class=\"yaml\"><code>version: &#39;3.6&#39;\r\nservices:\r\n\r\n  wordpress:\r\n    image: wordpress:${WORDPRESS_VERSION:-latest}\r\n    container_name: ${COMPOSE_PROJECT_NAME:-wordpress}\r\n    volumes:\r\n      - .\/config\/php.conf.ini:\/usr\/local\/etc\/php\/conf.d\/php.ini\r\n      - ${WORDPRESS_DATA_DIR:-.\/wordpress}:\/var\/www\/html\r\n    environment:\r\n      - WORDPRESS_DB_NAME=${COMPOSE_PROJECT_NAME:-wordpress}\r\n      - WORDPRESS_TABLE_PREFIX=${WORDPRESS_TABLE_PREFIX:-wp_}\r\n      - WORDPRESS_DB_HOST=${WORDPRESS_DB_HOST:-mysql}\r\n      - WORDPRESS_DB_USER=${DATABASE_USER:-root}\r\n      - WORDPRESS_DB_PASSWORD=${DATABASE_PASSWORD:-password}\r\n    depends_on:\r\n      - mysql\r\n      - phpmyadmin\r\n    restart: always\r\n    ports:\r\n        - 80:80\r\n\r\n  mysql:\r\n    image: mariadb:${MARIADB_VERSION:-latest}\r\n    container_name: ${COMPOSE_PROJECT_NAME}_mysql\r\n    volumes:\r\n      - .\/mysql:\/var\/lib\/mysql\r\n    environment:\r\n      - MYSQL_ROOT_PASSWORD=${DATABASE_PASSWORD:-password}\r\n      - MYSQL_USER=${DATABASE_USER:-root}\r\n      - MYSQL_PASSWORD=${DATABASE_PASSWORD:-password}\r\n      - MYSQL_DATABASE=${COMPOSE_PROJECT_NAME:-wordpress}\r\n    restart: always\r\n\r\n  phpmyadmin:\r\n    depends_on:\r\n      - mysql\r\n    image: phpmyadmin\/phpmyadmin:${PHPMYADMIN_VERSION:-latest}\r\n    container_name: ${COMPOSE_PROJECT_NAME}_phpmyadmin\r\n    restart: always\r\n    ports:\r\n      - ${PHPMYADMIN_PORT}:80\r\n    environment:\r\n      PMA_HOST: mysql\r\n      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-password}\r\n\r\n  # Command line interface to wordpress\r\n  wpcli:\r\n    build: .\/wpcli\/\r\n    image: wpcli\r\n    container_name: ${COMPOSE_PROJECT_NAME}_wpcli\r\n    volumes:\r\n      - ${WORDPRESS_DATA_DIR:-.\/wordpress}:\/var\/www\/html\r\n    working_dir: \/var\/www\/html\r\n\r\n# Check availability of essential services\r\n  healthcheck:\r\n    image: wpcli\r\n    build: .\/wpcli\/\r\n    container_name: ${COMPOSE_PROJECT_NAME}_healthcheck\r\n    command: sh -c &quot;\/wait&quot;\r\n    environment:\r\n      - WAIT_HOSTS=mysql:3306, wordpress:80\r\n      - WAIT_BEFORE_HOSTS=${WAIT_BEFORE_HOSTS:-30}\r\n      - WAIT_AFTER_HOSTS=${WAIT_AFTER_HOSTS:-15}\r\n      - WAIT_HOSTS_TIMEOUT=${WAIT_HOSTS_TIMEOUT:-300}\r\n      - WAIT_SLEEP_INTERVAL=${WAIT_SLEEP_INTERVAL:-30}\r\n      - WAIT_HOST_CONNECT_TIMEOUT=${WAIT_HOST_CONNECT_TIMEOUT:-30}<\/code><\/pre>\n<div class=\"warning\">\n<p>\nNote that, under the wordpress application, we map the .\/config\/php.conf.ini into the container so that the PHP picks up our additional configuration settings specified below. This makes it possible to increase the upload limit.\n<\/p>\n<\/div>\n<p>Contents of: <code>.\/config\/php.conf.ini<\/code><\/p>\n<pre class=\"bash\"><code>file_uploads = On\r\nmemory_limit = 512M\r\nupload_max_filesize = 64M\r\npost_max_size = 64M\r\nmax_execution_time = 600<\/code><\/pre>\n<div class=\"warning\">\n<p>\nNote also that, the provided <code>docker-compose.yml<\/code> file includes the <code>phpMyAdmin<\/code> application. If you want to use the <a href=\"https:\/\/www.adminer.org\/\"><strong>admirer<\/strong><\/a> interface for your database, then add the following directives in your <code>docker-compose.yml<\/code> file in lieu of the phpMyAdmin directives.\n<\/p>\n<\/div>\n<pre class=\"yaml\"><code>  adminer:\r\n    image: adminer\r\n    restart: always\r\n    links:\r\n      - mysql\r\n    ports:\r\n      - 8080:8080<\/code><\/pre>\n<\/div>\n<div id=\"wp-cli-dockerfile-and-configuration-file\" class=\"section level3\">\n<h3>WP Cli Dockerfile and configuration file<\/h3>\n<p>The WordPress cli is built from the following Dockerfile, which includes the <a href=\"https:\/\/www.datanovia.com\/en\/lessons\/docker-compose-wait-for-container-using-wait-tool\/\">docker-compose-wait tool<\/a>. The wait tool makes it possible to wait for a container to be ready before running another container. This makes wp-cli wait for MySQL to be ready before manipulating the database.<\/p>\n<p><strong>WP Cli Dockerfile<\/strong> (path: <code>.\/wpcli\/Dockerfile<\/code>):<\/p>\n<pre class=\"dockerfile\"><code>FROM wordpress:cli\r\n\r\n# Install make tool\r\nUSER root\r\nRUN apk add --no-cache make\r\n\r\n# Make docker-compose wait for container dependencies be ready\r\n# Add the wait script to the image\r\nENV WAIT_VERSION 2.7.2\r\nADD https:\/\/github.com\/ufoscout\/docker-compose-wait\/releases\/download\/$WAIT_VERSION\/wait \/wait\r\nRUN chmod +x \/wait\r\n\r\n# Add Makefile to scripts dir\r\nADD Makefile entrypoint.sh \/scripts\/\r\nRUN chmod +x \/scripts\/entrypoint.sh\r\n\r\nENTRYPOINT [ &quot;\/scripts\/entrypoint.sh&quot; ]\r\nUSER 33:33\r\nCMD [&quot;wp&quot;, &quot;shell&quot;]<\/code><\/pre>\n<p>This Dockerfile is based on <code>wordpress:cli<\/code>, installs the <code>docker-compose-wait<\/code> and has an entrypoint, which can either execute WP-cli or a Makefile.<\/p>\n<div class=\"warning\">\n<p>\nNote that, the <code>wordpress:latest<\/code> and <code>wpcli<\/code> images both run with the user <code>www-data<\/code>, but the problem is that the <a href=\"https:\/\/stackoverflow.com\/questions\/50999848\/how-to-run-wp-cli-in-docker-compose-yml\">individual www-data users have different user-id\u2019s<\/a>:\n<\/p>\n<ul>\n<li>\nuser-id=33 in wordpress\n<\/li>\n<li>\nuser-id=82 in wpcli\n<\/li>\n<\/ul>\n<p>\nWe have to make sure they both use the same user-id. This can be solved by having the wpcli run with the USER 33:33 in the Dockerfile.\n<\/p>\n<\/div>\n<p>The WP Cli tool automates the installation of WordPress using the following Makefile (path: <code>.\/wpcli\/Makefile<\/code>):<\/p>\n<pre class=\"bash\"><code>install: configure\r\n\r\nconfigure:\r\n\r\n    @echo &quot;\u2699\ufe0f Configuring WordPress parameters...&quot;\r\n    wp core install \\\r\n        --url=${WORDPRESS_WEBSITE_URL_WITHOUT_HTTP} \\\r\n        --title=$(WORDPRESS_WEBSITE_TITLE) \\\r\n        --admin_user=${WORDPRESS_ADMIN_USER} \\\r\n        --admin_password=${WORDPRESS_ADMIN_PASSWORD} \\\r\n        --admin_email=${WORDPRESS_ADMIN_EMAIL}\r\n\r\n    wp option update siteurl ${WORDPRESS_WEBSITE_URL}\r\n    wp rewrite structure $(WORDPRESS_WEBSITE_POST_URL_STRUCTURE)<\/code><\/pre>\n<p>Using this Makefile, the WP-Cli tool will configure:<\/p>\n<ul>\n<li>URL and title of website.<\/li>\n<li>URL structure.<\/li>\n<\/ul>\n<\/div>\n<div id=\"make-commands-for-automatic-wordpress-setup\" class=\"section level3\">\n<h3>Make commands for automatic WordPress setup<\/h3>\n<p>Path: .\/Makefile<\/p>\n<pre class=\"bash\"><code>start:\r\n    docker-compose up -d --build\r\n\r\nhealthcheck:\r\n    docker-compose run --rm healthcheck\r\n\r\ndown:\r\n    docker-compose down\r\n\r\ninstall: start healthcheck\r\n\r\nconfigure:\r\n    docker-compose -f docker-compose.yml -f wp-auto-config.yml run --rm wp-auto-config\r\n\r\nautoinstall: start\r\n    docker-compose -f docker-compose.yml -f wp-auto-config.yml run --rm wp-auto-config\r\n\r\nclean: down\r\n    @echo &quot;\ud83d\udca5 Removing related folders\/files...&quot;\r\n    @rm -rf  mysql\/* wordpress\/*\r\n\r\nreset: clean<\/code><\/pre>\n<p>Thanks to this Makefile, you will be able to automatically install and configure wordpress using <code>make autoinstall<\/code>.<\/p>\n<\/div>\n<\/div>\n<div id=\"step-3.-edit-the-wordpress-docker-setup-environment-variables\" class=\"section level2\">\n<h2>Step 3. Edit the WordPress Docker setup environment variables<\/h2>\n<p>A <code>.env<\/code> file has been included to easily set docker-compose variables without having to modify the <code>docker-compose.yml<\/code> configuration file itself.<\/p>\n<p>Default values have been provided as a mean of getting up and running quickly for testing purposes. It is up to the user to modify these to best suit their deployment preferences.<\/p>\n<p><strong>Open the <code>.env<\/code> file and update the contents<\/strong> if you want. For example, just change the project name and your password (for database and wordpress admin).<\/p>\n<pre class=\"bash\"><code># Open the file\r\nnano .env<\/code><\/pre>\n<p><strong>Contents<\/strong>:<\/p>\n<pre class=\"bash\"><code># 1\/ Project name -------------------------------------------------\r\n# Must be lower-case, no spaces and no invalid path chars.\r\n# Will be used also as the WP database name\r\nCOMPOSE_PROJECT_NAME=wordpress\r\n\r\n# 2\/ Database user and password -----------------------------------------\r\n# Set non-root database user if wanted (optional)\r\nDATABASE_PASSWORD=password\r\nDATABASE_USER=root\r\n\r\n# 3\/ For wordpress auto-install and auto-configuration -------------------\r\nWORDPRESS_WEBSITE_TITLE=&quot;My Blog&quot;\r\n\r\n# URL\r\nWORDPRESS_WEBSITE_URL=&quot;http:\/\/localhost&quot;\r\nWORDPRESS_WEBSITE_URL_WITHOUT_HTTP=localhost\r\nWORDPRESS_WEBSITE_POST_URL_STRUCTURE=&quot;\/blog\/%postname%\/&quot;\r\n\r\n# Website admin identification. Specify a strong password\r\nWORDPRESS_ADMIN_USER=&quot;wordpress&quot;\r\nWORDPRESS_ADMIN_PASSWORD=&quot;wordpress&quot;\r\nWORDPRESS_ADMIN_EMAIL=&quot;your-email@example.com&quot;\r\n\r\n# 4\/ Software versions -----------------------------------------------\r\nWORDPRESS_VERSION=latest\r\nMARIADB_VERSION=latest\r\nPHPMYADMIN_VERSION=latest\r\n\r\n# 5\/ Ports: Can be changed -------------------------------------------\r\nPHPMYADMIN_PORT=8080\r\n\r\n# 6\/ Volumes on host --------------------------------------------------\r\nWORDPRESS_DATA_DIR=.\/wordpress\r\n\r\n# 7\/ Healthcheck availability of host services (mysql and woordpress server)\r\n# Waiting time in second\r\nWAIT_BEFORE_HOSTS=5\r\nWAIT_AFTER_HOSTS=5\r\nWAIT_HOSTS_TIMEOUT=300\r\nWAIT_SLEEP_INTERVAL=60\r\nWAIT_HOST_CONNECT_TIMEOUT=5\r\n\r\n# 8\/ Used only in online deployement --------------------------------------\r\nWORDPRESS_WEBSITE_URL_WITHOUT_WWW=example.com\r\nPHPMYADMIN_WEBSITE_URL_WITHOUT_HTTP=sql.example.com<\/code><\/pre>\n<\/div>\n<div id=\"step-4.-install-wordpress-using-docker-compose\" class=\"section level2\">\n<h2>Step 4. Install WordPress using docker compose<\/h2>\n<p>You can automatically deploy a local docker wordpress site in 5 minutes using the following commands. Two options are available: <code>make<\/code> command and <code>docker-compose<\/code> standard commands.<\/p>\n<pre class=\"bash\"><code># Download a wordpress docker-compose example\r\ngit clone https:\/\/github.com\/kassambara\/wordpress-docker-compose\r\ncd wordpress-docker-compose\r\n\r\n# Use make command for automatic installation and\r\n# configuration of wordpress\r\nmake autoinstall\r\n\r\n# Or, use docker-compose standard commands\r\ndocker-compose up -d --build\r\ndocker-compose -f docker-compose.yml -f wp-auto-config.yml run --rm wp-auto-config<\/code><\/pre>\n<ol style=\"list-style-type: decimal\">\n<li>Visit your wordpress website at <a href=\"http:\/\/localhost\" class=\"uri\">http:\/\/localhost<\/a>. Default identification for admin (<a href=\"http:\/\/localhost\/wp-login.php\" class=\"uri\">http:\/\/localhost\/wp-login.php<\/a>):<\/li>\n<\/ol>\n<ul>\n<li><code>Username: wordpress<\/code> and<\/li>\n<li><code>Password: wordpress<\/code><\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/docker-compose-wordpress-woocommerce-and-wp-cli\/images\/wordpress-docker-compose-006-website.png\" alt=\"Website\" \/><\/p>\n<ol start=\"2\" style=\"list-style-type: decimal\">\n<li>Visit your database via phpMyAdmin at <a href=\"http:\/\/localhost:8080\" class=\"uri\">http:\/\/localhost:8080<\/a><\/li>\n<\/ol>\n<ul>\n<li><code>Username: root<\/code> and<\/li>\n<li><code>Password: password<\/code><\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/docker-compose-wordpress-woocommerce-and-wp-cli\/images\/wordpress-docker-compose-007-phpmyadmin.png\" alt=\"phpMyAdmin\" \/><\/p>\n<\/div>\n<div id=\"step-5.-shutdown-and-cleanup\" class=\"section level2\">\n<h2>Step 5. Shutdown and cleanup<\/h2>\n<pre class=\"bash\"><code># Stop and remove containers\r\ndocker-compose down\r\n# Build, and start the wordpress website\r\ndocker-compose up -d --build\r\n# Reset everything\r\ndocker-compose down\r\nrm -rf mysql\/* wordpress\/*<\/code><\/pre>\n<div class=\"warning\">\n<p>\nNote that, instead of using the above <code>docker-compose<\/code> commands, you can also use easily the following <code>make<\/code> shortcut command lines if you have Unix systems (MAC \/ Linux).\n<\/p>\n<\/div>\n<pre class=\"bash\"><code># Build, and start the wordpress website\r\nmake start\r\n# Stop and remove wordpress docker containers\r\nmake down\r\n# Reset everything\r\nmake reset<\/code><\/pre>\n<\/div>\n<div id=\"summary\" class=\"section level2\">\n<h2>Summary<\/h2>\n<p>This article describes the WordPress Docker setup and associated configuration files to install and run WordPress using docker-compose<\/p>\n<\/div>\n<div id=\"references\" class=\"section level2\">\n<h2>References<\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/mjstealey\/wordpress-nginx-docker\">WordPress: with Nginx web server in Docker<\/a><\/li>\n<li><a href=\"https:\/\/docs.docker.com\/compose\/wordpress\/\">Quickstart: Compose and WordPress<\/a><\/li>\n<li><a href=\"http:\/\/blog.michaelperrin.fr\/2018\/10\/26\/automate-wordpress-part-1\/\">WordPress, the automated way (part 1): setup<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<p><!--end rdoc--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Shows an example of Wordpress Docker setup files for local development on either Windows, MAC or Ubuntu.<\/p>\n","protected":false},"author":1,"featured_media":7963,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","class_list":["post-14600","dt_lessons","type-dt_lessons","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Wordpress Docker Setup Files: Example for Local Development - Datanovia<\/title>\n<meta name=\"description\" content=\"Shows an example of Wordpress Docker setup files for local development on either Windows, MAC or Ubuntu.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wordpress Docker Setup Files: Example for Local Development - Datanovia\" \/>\n<meta property=\"og:description\" content=\"Shows an example of Wordpress Docker setup files for local development on either Windows, MAC or Ubuntu.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/\" \/>\n<meta property=\"og:site_name\" content=\"Datanovia\" \/>\n<meta property=\"article:modified_time\" content=\"2020-02-23T08:41:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/C11.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/\",\"url\":\"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/\",\"name\":\"Wordpress Docker Setup Files: Example for Local Development - Datanovia\",\"isPartOf\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/C11.jpg\",\"datePublished\":\"2020-02-19T22:11:38+00:00\",\"dateModified\":\"2020-02-23T08:41:55+00:00\",\"description\":\"Shows an example of Wordpress Docker setup files for local development on either Windows, MAC or Ubuntu.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/#primaryimage\",\"url\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/C11.jpg\",\"contentUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/C11.jpg\",\"width\":1024,\"height\":512},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.datanovia.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lessons\",\"item\":\"https:\/\/www.datanovia.com\/en\/lessons\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"WordPress Docker Setup Files: Example for Local Development\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#website\",\"url\":\"https:\/\/www.datanovia.com\/en\/\",\"name\":\"Datanovia\",\"description\":\"Data Mining and Statistics for Decision Support\",\"publisher\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.datanovia.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#organization\",\"name\":\"Datanovia\",\"url\":\"https:\/\/www.datanovia.com\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png\",\"contentUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png\",\"width\":98,\"height\":99,\"caption\":\"Datanovia\"},\"image\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Wordpress Docker Setup Files: Example for Local Development - Datanovia","description":"Shows an example of Wordpress Docker setup files for local development on either Windows, MAC or Ubuntu.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/","og_locale":"en_US","og_type":"article","og_title":"Wordpress Docker Setup Files: Example for Local Development - Datanovia","og_description":"Shows an example of Wordpress Docker setup files for local development on either Windows, MAC or Ubuntu.","og_url":"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/","og_site_name":"Datanovia","article_modified_time":"2020-02-23T08:41:55+00:00","og_image":[{"width":1024,"height":512,"url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/C11.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/","url":"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/","name":"Wordpress Docker Setup Files: Example for Local Development - Datanovia","isPartOf":{"@id":"https:\/\/www.datanovia.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/#primaryimage"},"image":{"@id":"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/#primaryimage"},"thumbnailUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/C11.jpg","datePublished":"2020-02-19T22:11:38+00:00","dateModified":"2020-02-23T08:41:55+00:00","description":"Shows an example of Wordpress Docker setup files for local development on either Windows, MAC or Ubuntu.","breadcrumb":{"@id":"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/#primaryimage","url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/C11.jpg","contentUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/C11.jpg","width":1024,"height":512},{"@type":"BreadcrumbList","@id":"https:\/\/www.datanovia.com\/en\/lessons\/wordpress-docker-setup-files-example-for-local-development\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.datanovia.com\/en\/"},{"@type":"ListItem","position":2,"name":"Lessons","item":"https:\/\/www.datanovia.com\/en\/lessons\/"},{"@type":"ListItem","position":3,"name":"WordPress Docker Setup Files: Example for Local Development"}]},{"@type":"WebSite","@id":"https:\/\/www.datanovia.com\/en\/#website","url":"https:\/\/www.datanovia.com\/en\/","name":"Datanovia","description":"Data Mining and Statistics for Decision Support","publisher":{"@id":"https:\/\/www.datanovia.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.datanovia.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.datanovia.com\/en\/#organization","name":"Datanovia","url":"https:\/\/www.datanovia.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.datanovia.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png","contentUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png","width":98,"height":99,"caption":"Datanovia"},"image":{"@id":"https:\/\/www.datanovia.com\/en\/#\/schema\/logo\/image\/"}}]}},"multi-rating":{"mr_rating_results":[]},"_links":{"self":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/dt_lessons\/14600","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/dt_lessons"}],"about":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/types\/dt_lessons"}],"author":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/comments?post=14600"}],"version-history":[{"count":0,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/dt_lessons\/14600\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/media\/7963"}],"wp:attachment":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/media?parent=14600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}