{"id":2326,"date":"2017-02-16T09:00:05","date_gmt":"2017-02-16T09:00:05","guid":{"rendered":"https:\/\/anexia.com\/blog\/en\/?p=2326"},"modified":"2022-07-29T13:50:41","modified_gmt":"2022-07-29T11:50:41","slug":"vereinfachte-wordpress-entwicklung-mit-docker-compose","status":"publish","type":"post","link":"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/","title":{"rendered":"WordPress Entwicklung mit Docker Compose"},"content":{"rendered":"<p>Entwicklungsumgebungen sind unerl\u00e4sslich, um neue Software zum Leben zu erwecken. Jede Technologie hat ein eigenes Set an Werkzeugen, die man benutzen kann, um so eine Umgebung zu erschaffen. Und so ist es auch in der Webentwicklung. Fr\u00fcher\u00a0wurden dazu\u00a0Software-Stacks wie zum Beispiel\u00a0<a href=\"https:\/\/www.apachefriends.org\/de\/index.html\">XAMPP<\/a>\u00a0verwendet oder der Entwickler\u00a0hat sich alles manuell auf einer virtuellen Maschine konfiguriert. Im besten Fall konnten diese virtuellen Maschinen als Vorlagen exportiert werden. Die Verwendung von benutzerdefinierten Skripten auf diesen Vorlagen erm\u00f6glichte die automatische Installation spezifischer Pakete. Um unser Leben zu erleichtern, haben wir daf\u00fcr\u00a0<a href=\"https:\/\/www.vagrantup.com\/\">Vagrant<\/a>\u00a0eingesetzt. Damit ist es m\u00f6glich, die Entwicklungsumgebung f\u00fcr ein bestimmtes Projekt mit alle beteiligten Entwicklern zu teilen. Allerdings dauert es einige Zeit, um die Skripte zu schreiben und auch die Laufzeit und die Speicherauslastung sind\u00a0begrenzt (da dieses System\u00a0<a href=\"https:\/\/www.virtualbox.org\/\">VirtualBox<\/a>\u00a0verwendet). Dazu kommt, dass\u00a0es zeitaufwendig ist, mehrere Instanzen der Maschine zu erstellen und Verbindungen zwischen ihnen herzustellen. Manuell konfigurierte VMs bringen also einige Probleme mit sich. Aber es gibt eine L\u00f6sung: hier kommt\u00a0<a href=\"https:\/\/www.docker.com\/\">Docker<\/a>\u00a0ins Spiel.<\/p>\n<p>Mit Docker sind die Skripte, die man f\u00fcr das Erstellen der Umgebungen ben\u00f6tigt, viel einfacher zu lesen und zu verwalten. Auch hat man die M\u00f6glichkeit Dockerimages zu erweitern, die von anderen Skripten erstellt wurden (das bietet die M\u00f6glichkeit zentralisiert zu arbeiten und weniger Code in den Docker-Dateien zu schreiben). Die finale Komponente in dieser Struktur ist\u00a0<a href=\"https:\/\/docs.docker.com\/compose\/\">Docker Compose<\/a>. Dieses Paket erm\u00f6glicht die Erstellung einer Konfigurationsdatei, in der alle Befehle, die normalerweise in der Konsole ausgef\u00fchrt werden, besser lesbar und erweiterbar geschrieben werden k\u00f6nnen. Es bietet auch die M\u00f6glichkeit, Container zu verbinden. So k\u00f6nnen Komponenten erstellt werden, die nur f\u00fcr einen Zweck verantwortlich sind: Webserver, Datenbank, E-Mail-Versand o.\u00e4.<\/p>\n<p>Mit dieser Power k\u00f6nnen wir einen einfacheren Workflow f\u00fcr WordPress Projekte implementieren, zum Beispiel bei der Entwicklung eines Plugins, eines Themes oder sogar bei einem vollst\u00e4ndigen Projekt das auf WordPress basiert. Daf\u00fcr wird WPDC (WordPress Docker Compose) verwenden: Hier nachzulesen in meinem\u00a0<a href=\"https:\/\/github.com\/nezhar\/wordpress-docker-compose\">GitHub directory<\/a>.<\/p>\n<p>Im Anschluss will ich hier nun vorstellen, wie Entwicklungsumgebungen f\u00fcr WordPress mit Docker Compose aufgesetzt werden k\u00f6nnen: Einmal f\u00fcr ein vollst\u00e4ndig neues Projekt, einmal wie ein bestehendes Projekt importiert werden kann und einmal, wie die Entwicklungsumgebung f\u00fcr ein WordPress Plugin oder Theme aufgesetzt werden kann.<\/p>\n<h2>1. Starten eines neuen Projekts<\/h2>\n<p>Bei der Entwicklung eines neuen\u00a0Projektes, das auf WordPress basiert, ist der Zugriff auf das gesamte\u00a0<strong>wp-content\u00a0<\/strong>Verzeichnis erforderlich, da hier die Arbeit eines Entwicklers stattfindet (Themes, Plugins, \u00dcbersetzungen usw.). Die Standardkonfiguration f\u00fcr die Volumes (.\/wp-app:\/var\/www\/html) ordnet alle Dateien aus dem WordPress-Container im Verzeichnis \/var\/www\/html dem Verzeichnis\u00a0<strong>wp-app<\/strong>\u00a0auf dem aktuellen Arbeitsverzeichnis. Dies bedeutet auch Zugriff auf den Kern von WordPress und Konfigurationsdateien. Dies bietet einen gro\u00dfen Vorteil bei der Durchf\u00fchrung von manuellen Updates und der Sicherung von Dateien in einem Versionskontrollsystem. So wird\u00a0sichergestellt, dass die Komponenten noch funktionieren. Es gibt auch die M\u00f6glichkeit, das wp-content-Verzeichnis (.\/wp-content: \/var\/www\/html\/wp-content) direkt zuzuordnen. Durch die Verwendung dieser Konfiguration wird der WordPress-Kern nicht in das Versionskontrollsystem gelangen, aber es besteht das Risiko,\u00a0mit einem defekten Projekt zu enden, wenn das Theme oder eines der Plugins nicht mit dem neuen Kern von WordPress kompatibel ist. Dies sollte\u00a0f\u00fcr ein laufendes Projekt kein Problem sein, da es sowieso auf dem neuesten Kern aufbaut. Kommt es aber zu\u00a0l\u00e4ngeren Pausen im Projekt, k\u00f6nnen solche Probleme auftreten. Durch die Kontrolle \u00fcber die Kern-Updates kann der Code besser verwaltet und getestet werden.<\/p>\n<p>Die Datei docker-compose.yml verwendet die offiziellen WordPress- und MySQL-Dockerimages in den neuesten Versionen. Sie kann aber auch so konfiguriert werden, dass sie n\u00e4her an den tats\u00e4chlichen Server-Anforderungen des Projekts ist. Das aktuelle\u00a0<strong>wordpress:latest<\/strong>\u00a0Dockerimage verwendet PHP 5.6 mit einem Apache-Server. Soll ein anderes Dockerimage verwendet werden, ist das mit \u00c4nderung\u00a0des tags \u201e<strong>latest<\/strong>\u201c auf \u201e<strong>PHP7.0-Apache<\/strong>\u201c, das PHP 7.0 bietet, m\u00f6glich. Gleiches gilt f\u00fcr die Datenbank. Es gibt sogar eine Option um MariaDB anstelle von MySQL zu verwenden.<\/p>\n<p>Nach der Entscheidung mit dem Team, wie die Volumes konfiguriert werden sollen und welche Dockerimages verwendet werden, ist es Zeit, die Container zu starten. \u00d6ffne ein Terminal, gehe in das Verzeichnis der\u00a0<strong>docker-compose.yml<\/strong>\u00a0Datei und f\u00fchre folgenden Konsolen Befehl aus:<\/p>\n<pre class=\"lang:sh decode:true\">docker-compose up<\/pre>\n<p>Dadurch werden zwei neue Ordner im Arbeitsverzeichnis erstellt: Einer f\u00fcr\u00a0die WordPress App (wp-app) und einer f\u00fcr die Datenbank (wp-data), der f\u00fcr den Moment leer sein wird.<br \/>\nAus Gr\u00fcnden der Benutzerfreundlichkeit empfiehlt es sich, einen Hostnamen in der \/etc\/hosts Datei zu definieren, der auf 127.0.0.1 (default auf der docker-compose.yml) abgebildet wird, statt direkt die IP-Adresse im Browser zu verwenden. Danach kann die Seite im Browser ge\u00f6ffnet werden, um die WordPress-Installation abzuschlie\u00dfen.<br \/>\nAb jetzt ist die Entwicklungsumgebung gesetzt und jeder kann mit der Konfiguration und Codierung des WordPress-Projekts beginnen.<\/p>\n<p>Von Zeit zu Zeit sollte eines der Teammitglieder in Erw\u00e4gung ziehen, eine Reihe von Testdaten in die Datenbank zu schreiben, auf die alle Entwickler Zugriff haben k\u00f6nnen. Es gibt ein kleines Shell-Skript mit dem Namen export.sh. Wenn du dies in der Konsole ausf\u00fchrst, wird ein Dump aus dem Datenbankcontainer in das wp-data-Verzeichnis erstellt. Dies erm\u00f6glicht einen Dump im Versionskontrollsystem zu haben.<br \/>\nUm die Datenbank im Dump-Zustand zu haben, gen\u00fcgt es, die Container zu entfernen und neu zu erstellen:<\/p>\n<pre class=\"lang:sh decode:true\">docker-compose down\r\ndocker-compose up<\/pre>\n<p>Das <strong>wp-data<\/strong>-Verzeichnis wird nun verwendet, wenn der Container f\u00fcr die Datenbank erstellt wird, und l\u00e4dt alle darin verf\u00fcgbaren SQL-Dateien (stelle sicher, dass nur eine Dump-Datei vorhanden ist).<\/p>\n<h2>2.\u00a0Fortsetzung eines Projekts aus einer vorhandenen Quelle<\/h2>\n<p>Dieser Fall tritt ein, wenn bereits ein vollst\u00e4ndiges WordPress-Projekt (einschlie\u00dflich Kern) und ein SQL-Dump verf\u00fcgbar sind. Erstelle ein wp-app-Verzeichnis und kopiere alle WordPress-Dateien hinein. Danach erstelle ein anderes Verzeichnis namens wp-data (dies basiert auf der Default-Konfiguration) und lege den Datenbank-Dump hinein. Achte darauf, passende Image-Tags zur docker-compose.yml-Datei hinzuzuf\u00fcgen, wenn andere PHP- oder MySQL-Versionen erforderlich sind. Danach kann die Entwicklungsumgebung gestartet werden:<\/p>\n<pre class=\"lang:sh decode:true\">docker-compose up<\/pre>\n<p>Nun ist ein Host-Eintrag erforderlich (wie oben beschrieben), den WordPress als\u00a0neuen Host verwendet. Der einfachste Weg dazu ist die Definition von zwei Konstanten in der <strong>wp-config.php<\/strong>-Datei:<\/p>\n<pre class=\"lang:php decode:true\">define('WP_HOME','http:\/\/wp-app.local');\r\ndefine('WP_SITEURL','http:\/\/wp-app.local');<\/pre>\n<h2>3.\u00a0Entwicklung eines Themes oder Plugins<\/h2>\n<p>Mit Docker Compose ist es auch m\u00f6glich, nur bestimmte Komponenten f\u00fcr WordPress, wie Themes und Plugins zu entwickeln. Alles was es braucht, ist eine richtige Konfiguration der Volumes in der docker-compose.yml-Datei.<\/p>\n<p><strong>F\u00fcr Theme Entwicklung:<\/strong><\/p>\n<pre class=\"lang:sh decode:true\">volumes:\r\n- .\/theme-name\/trunk\/:\/var\/www\/html\/wp-content\/themes\/theme-name<\/pre>\n<p><strong>F\u00fcr Plugin Entwicklung:<\/strong><\/p>\n<pre class=\"lang:sh decode:true \">volumes:\r\n- .\/plugin-name\/trunk\/:\/var\/www\/html\/wp-content\/plugins\/plugin-name<\/pre>\n<p>Das Erstellen oder Fortf\u00fchren der Entwicklung eines Themes oder Plugins funktioniert genauso wie f\u00fcr ein Projekt.<\/p>\n<h2>Fazit<\/h2>\n<p>M\u00f6glicherweise musst du einige Zeit aufbringen um Docker Compose zu installieren und dich zurecht zu finden mit den Befehlen von Docker, die die Entwicklungsumgebung zum Leben bringen. Es wird aber nicht all zu lange dauern und die Vorteile sind riesig. Dieses Prinzip kann auf alle WordPress-Projekte angewendet werden, und jedes Teammitglied kann davon profitieren und Zeit f\u00fcr den Entwicklungsprozess gewinnen. Wir sparen inzwischen auf jeden Fall viel Zeit und Nerven!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Harald erkl\u00e4rt, wie eine Entwicklungsumgebung f\u00fcr WordPress mit Docker Compose erstellt wird: F\u00fcr neue und fortgef\u00fchrte Projekte oder f\u00fcr Plugins\/Themes.<\/p>\n","protected":false},"author":13,"featured_media":484,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[241,380,379],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Wordpress Entwicklung mit Docker Compose<\/title>\n<meta name=\"description\" content=\"So wird eine Entwicklungsumgebung f\u00fcr WordPress mit Docker Compose erstellt. F\u00fcr neue und fortgef\u00fchrte Projekte oder f\u00fcr Plugins\/Themes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wordpress Entwicklung mit Docker Compose\" \/>\n<meta property=\"og:description\" content=\"So wird eine Entwicklungsumgebung f\u00fcr WordPress mit Docker Compose erstellt. F\u00fcr neue und fortgef\u00fchrte Projekte oder f\u00fcr Plugins\/Themes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/\" \/>\n<meta property=\"og:site_name\" content=\"ANEXIA Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/anexiagmbh\/\" \/>\n<meta property=\"article:published_time\" content=\"2017-02-16T09:00:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-07-29T11:50:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2015\/01\/Harald-N_web.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"1067\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Harald Nezbeda\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@_ANEXIA\" \/>\n<meta name=\"twitter:site\" content=\"@_ANEXIA\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Harald Nezbeda\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/\",\"url\":\"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/\",\"name\":\"Wordpress Entwicklung mit Docker Compose\",\"isPartOf\":{\"@id\":\"https:\/\/anexia.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2015\/01\/Harald-N_web.jpg\",\"datePublished\":\"2017-02-16T09:00:05+00:00\",\"dateModified\":\"2022-07-29T11:50:41+00:00\",\"author\":{\"@id\":\"https:\/\/anexia.com\/blog\/#\/schema\/person\/9196661829f9337366e2f283b30199e3\"},\"description\":\"So wird eine Entwicklungsumgebung f\u00fcr WordPress mit Docker Compose erstellt. F\u00fcr neue und fortgef\u00fchrte Projekte oder f\u00fcr Plugins\/Themes.\",\"breadcrumb\":{\"@id\":\"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/#primaryimage\",\"url\":\"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2015\/01\/Harald-N_web.jpg\",\"contentUrl\":\"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2015\/01\/Harald-N_web.jpg\",\"width\":1600,\"height\":1067,\"caption\":\"Python Harald Nezbeda\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/anexia.com\/blog\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WordPress Entwicklung mit Docker Compose\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/anexia.com\/blog\/#website\",\"url\":\"https:\/\/anexia.com\/blog\/\",\"name\":\"ANEXIA Blog\",\"description\":\"[:de] ANEXIA Blog - Technischen Themen, Anexia News und Insights [:]\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/anexia.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/anexia.com\/blog\/#\/schema\/person\/9196661829f9337366e2f283b30199e3\",\"name\":\"Harald Nezbeda\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/anexia.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f433475ef86738781d677056909b37c3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f433475ef86738781d677056909b37c3?s=96&d=mm&r=g\",\"caption\":\"Harald Nezbeda\"},\"url\":\"https:\/\/anexia.com\/blog\/author\/hn\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Wordpress Entwicklung mit Docker Compose","description":"So wird eine Entwicklungsumgebung f\u00fcr WordPress mit Docker Compose erstellt. F\u00fcr neue und fortgef\u00fchrte Projekte oder f\u00fcr Plugins\/Themes.","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:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/","og_locale":"de_DE","og_type":"article","og_title":"Wordpress Entwicklung mit Docker Compose","og_description":"So wird eine Entwicklungsumgebung f\u00fcr WordPress mit Docker Compose erstellt. F\u00fcr neue und fortgef\u00fchrte Projekte oder f\u00fcr Plugins\/Themes.","og_url":"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/","og_site_name":"ANEXIA Blog","article_publisher":"https:\/\/www.facebook.com\/anexiagmbh\/","article_published_time":"2017-02-16T09:00:05+00:00","article_modified_time":"2022-07-29T11:50:41+00:00","og_image":[{"width":1600,"height":1067,"url":"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2015\/01\/Harald-N_web.jpg","type":"image\/jpeg"}],"author":"Harald Nezbeda","twitter_card":"summary_large_image","twitter_creator":"@_ANEXIA","twitter_site":"@_ANEXIA","twitter_misc":{"Verfasst von":"Harald Nezbeda","Gesch\u00e4tzte Lesezeit":"6\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/","url":"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/","name":"Wordpress Entwicklung mit Docker Compose","isPartOf":{"@id":"https:\/\/anexia.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/#primaryimage"},"image":{"@id":"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/#primaryimage"},"thumbnailUrl":"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2015\/01\/Harald-N_web.jpg","datePublished":"2017-02-16T09:00:05+00:00","dateModified":"2022-07-29T11:50:41+00:00","author":{"@id":"https:\/\/anexia.com\/blog\/#\/schema\/person\/9196661829f9337366e2f283b30199e3"},"description":"So wird eine Entwicklungsumgebung f\u00fcr WordPress mit Docker Compose erstellt. F\u00fcr neue und fortgef\u00fchrte Projekte oder f\u00fcr Plugins\/Themes.","breadcrumb":{"@id":"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/#primaryimage","url":"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2015\/01\/Harald-N_web.jpg","contentUrl":"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2015\/01\/Harald-N_web.jpg","width":1600,"height":1067,"caption":"Python Harald Nezbeda"},{"@type":"BreadcrumbList","@id":"https:\/\/anexia.com\/blog\/de\/vereinfachte-wordpress-entwicklung-mit-docker-compose\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/anexia.com\/blog\/de\/"},{"@type":"ListItem","position":2,"name":"WordPress Entwicklung mit Docker Compose"}]},{"@type":"WebSite","@id":"https:\/\/anexia.com\/blog\/#website","url":"https:\/\/anexia.com\/blog\/","name":"ANEXIA Blog","description":"[:de] ANEXIA Blog - Technischen Themen, Anexia News und Insights [:]","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/anexia.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/anexia.com\/blog\/#\/schema\/person\/9196661829f9337366e2f283b30199e3","name":"Harald Nezbeda","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/anexia.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f433475ef86738781d677056909b37c3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f433475ef86738781d677056909b37c3?s=96&d=mm&r=g","caption":"Harald Nezbeda"},"url":"https:\/\/anexia.com\/blog\/author\/hn\/"}]}},"lang":"de","translations":{"de":2326,"en":6847},"amp_enabled":true,"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/posts\/2326"}],"collection":[{"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/comments?post=2326"}],"version-history":[{"count":29,"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/posts\/2326\/revisions"}],"predecessor-version":[{"id":7573,"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/posts\/2326\/revisions\/7573"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/media\/484"}],"wp:attachment":[{"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/media?parent=2326"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/categories?post=2326"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/tags?post=2326"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}