Lass uns die letzten beiden Beitraege ueber Jekyll und Docker nehmen und ein Docker-Image als Basis fuer Container erstellen, die einen Jekyll-Blog bereitstellen.

Wann immer das Image erstellt und der Container ausgefuehrt wird, passiert Folgendes:

  • Code fuer die Ausfuehrung von git und Jekyll wird installiert.
  • Ein Git-Repo mit dem Jekyll-Blog wird geklont.
  • Jekyll wird ausgefuehrt, um die statische Seite zu erstellen und bereitzustellen.

Das Dockerfile sieht so aus:

{% gist 41c14bedd5fc05cc2ab8 Dockerfile.jekyll_serve %}

Es wird erstellt mit

docker build --tag="your_tag/jekyll_serve" --rm=true.

Danach wird es ausgefuehrt mit

docker run -d -p 4000:4000 --name jekyll_serve your_tag/jekyll_serve:latest

In diesem Fall wird Port 4000 des Docker-Containers auf Port 4000 des Docker-Hosts gemappt.

Um zu testen, ob der Blog auf diesem Port bereitgestellt wird, fuehre curl auf dem Docker-Host zu localhost:4000 aus. Du solltest den Index des neu erstellten Blogs abrufen koennen.

Wenn du mit einer Vagrant Box als Docker-Host arbeitest, kannst du folgende Zeile zu deinem Vagrantfile hinzufuegen, um Port-Forwarding fuer Jekyll zu deinem physischen Host zu aktivieren:

config.vm.network "forwarded_port", guest: 4000, host: 4000

Wenn ich jetzt meinen Browser auf meinem Mac oeffne und localhost:4000 eingebe, werde ich in meine Vagrant Box auf Port 4000 weitergeleitet, die mich zum Port 4000 des Containers weiterleitet.

Eine weitere Option ist, das Port-Forwarding vom physischen Host zur Vagrant Box manuell unter VirtualBox in Settings Network Advanced Port Forwarding hinzuzufuegen.

In diesem Beitrag hast du gelernt, wie man ein Docker-Image erstellt, das einen Jekyll-Blog baut und bereitstellt. Wenn es dein erstes Dockerfile ist, herzlichen Glueckwunsch - beim Erstellen von Dockerfiles wird es nicht viel komplizierter; du hast die wichtigsten Schritte bereits abgedeckt.

Fertig fuer heute!