web-dev-qa-db-de.com

Wie kann ich Docker für die Entwicklung und Bereitstellung eines benutzerdefinierten Designs konfigurieren?

Ich fange gerade mit Docker an und bin noch neu in der professionellen WordPress-Entwicklung. Ich möchte eine Docker-Entwicklungsumgebung (auf meinem Mac) einrichten, damit ich benutzerdefinierte WordPress-Designs entwickeln kann.

Angenommen, Sie haben dies bereits getan und verwenden Docker bereits. Wie haben Sie dies eingerichtet? Wie sehen Ihre Dockerfile und docker-compose.yml aus? Ich bin mir sicher, dass das schon mal gemacht wurde. Es würde mich nicht wundern, wenn es bereits einen einzeiligen Befehl gibt, der dies für Sie einrichten kann.

Update: Ich habe dieses Thema auf die folgende Frage eingegrenzt:

Wie kann ich Docker für die Entwicklung und Bereitstellung eines benutzerdefinierten Designs konfigurieren?

12
Andrew

Ich werde eine Teilantwort posten, um die Diskussion zu beginnen, in der Hoffnung, einige hilfreiche Kommentare zu erhalten, um die Lücken oder alternativen Antworten auszufüllen ...

Schritt 1: boot2docker installieren und einrichten

Docker läuft nur unter Linux. Um Docker auf unserem Mac nutzen zu können, müssen wir boot2docker installieren, mit dem Docker auf einer Linux-VM ausgeführt wird. Sie können boot2docker mit Homebrew installieren:

brew install boot2docker

Sobald die Installation abgeschlossen ist, richten Sie boot2docker ein und starten es:

boot2docker init
boot2docker start

Als Nächstes müssen wir einen Befehl ausführen, um einige Umgebungsvariablen einzurichten, damit docker-compose Docker in unserer boot2docker-VM findet.

eval "$(boot2docker shellinit)"

Möglicherweise möchten Sie die Zeilen, die Variablen exportieren, zu Ihrem ~/.bash_profile hinzufügen, damit Sie den Befehl nicht jedes Mal ausführen müssen, wenn Sie ein neues Terminalfenster öffnen.

Schritt 2: Installieren Sie docker-compose

Es gibt ein Docker-Plugin mit dem Namen docker-compose (ursprünglich fig), mit dem Sie die Beziehung zwischen Ihren Docker-Containern ganz einfach definieren können. Sie können es auch mit Homebrew installieren:

brew install docker-compose

Schritt 3: Erstellen Sie docker-compose.yml

Es gibt ein offizielles WordPress Docker-Image in der Docker-Registrierung. Es enthält einige Informationen zum manuellen Starten von Docker mit allen Befehlszeilen-Flags, die erforderlich sind, damit alles funktioniert. Soweit ich das beurteilen kann, können Sie das alles überspringen, da wir docker-compose verwenden werden. Erstellen Sie in dem Verzeichnis, in dem Sie an Ihrem WordPress-Theme arbeiten, einen docker-compose.yml mit folgendem Inhalt:

wordpress:
  image: wordpress
  links:
    - db:mysql
  ports:
    - 8080:80
  volumes:
    - .:/var/www/html/wp-content/themes/my-theme-name

db:
  image: mariadb
  environment:
    MYSQL_ROOT_PASSWORD: example

Die volumes-Konfiguration verknüpft unsere Themendateien in unserem aktuellen Verzeichnis mit einem neuen Themenverzeichnis im Docker-Container.

Schritt 4: Starten Sie die Container

Führen Sie docker-compose up aus und Sie werden zwei Docker-Container ("wordpress" und "db") einrichten, in denen eine Installation von WordPress ausgeführt wird.

Schritt 5: Öffnen Sie die Site im Browser

Unsere docker-compose.yml-Konfiguration hat angegeben, dass wir Port 80 an Port 8080 weiterleiten. Außerdem führt boot2docker sein VM auf einer bestimmten IP-Adresse aus. Um die URL herauszufinden, müssen wir daher den Befehl boot2docker ip verwenden:

open http://$(boot2docker ip):8080

Fragen

Jetzt, wo ich die Container in Betrieb habe, habe ich ein paar Fragen ...

  1. Gibt es eine automatische Möglichkeit, die boot2docker-Umgebungsvariablen einzurichten, außer die in boot2docker shellinit aufgeführten Exporte zu kopieren und einzufügen?

  2. Wenn ich an einer Rails-Anwendung arbeite, verwende ich gerne Pow , damit ich über eine benannte .dev-Domäne auf die App zugreifen kann, anstatt mit bestimmten Ports/IPs zu arbeiten. Wie kann ich mein System (oder Pow) so konfigurieren, dass ich über http://mysite.dev auf den Host zugreifen kann?

  3. Gibt es irgendwelche Schritte, die ich verpasst habe? Oder gibt es irgendwelche Schritte, die am Ende hinzugefügt werden sollten?

7
Andrew

Meine bevorzugte Lösung hierfür ist die Verwendung von Composer in Kombination mit Docker. Docker kümmert sich um die Umgebung, Composer kümmert sich um die Abhängigkeiten, einschließlich Designs, Plugins und anderer Pakete, die ich möglicherweise benötige.

Hier ist mein lokales Docker-Setup:

https://github.com/alexmacarthur/wp-skateboard

Und hier ist ein Zweig, der Composer verwendet, um das Thema _s herunterzuladen und es in meinem Verzeichnis themes abzulegen:

https://github.com/alexmacarthur/wp-skateboard/tree/starter-theme-underscores

0
Alex MacArthur