Ghost in Docker

CMS

Ghost ist ein Open-Source-CMS das speziell für Blogger und Verleger entwickelt wurde. Es ist modern und einfach. Durch den Einsatz von Markdown zur Strukturierung der Contents können Artikel sehr schnell erstellt werden. Das CMS-UI kann dadurch auch sehr übersichtlich bleiben.

Ghost CMS basiert vor allem auf Ember, Node.js und Express. Es gibt ein offizielles Ghost-Image, auf Grundlage dessen wir sehr einfach einen eigenen Container aufbauen können.

Docker

In der Konfiguration wird ein Nginx-Proxy-Container verwendet, dessen Konfiguration ich im folgenden Artikel beschrieben habe: Reverse-Proxy für Docker-Apps

Die docker-compose.yml:

version: '2'

services:
  ghost:
    image: ghost
    container_name: mydomain-ghost
    restart: always
    networks:
      - nproxy_default
      - default
    volumes:
      -mydomain-data:/var/lib/ghost
    environment:
      - VIRTUAL_HOST=mydomain
      - NODE_ENV=production

volumes:
  mydomain-data: {}

networks:
  nproxy_default:
    external: true

volumes: Die Verwendung des volume als einfaches Verzeichnis-Mapping im aktuellen Ordner funktionierte nicht. Die Ghost-Dateien waren nicht erreichbar. Erst mit der Verwendung eines benannten Volume war der Zugriff gewährt. Die Ghost-Daten sind dann unter /var/lib/docker/volumes/verzeichnisname_mydomain-data/_data/ erreichbar.

networks: Die Netzwerkkommunikation wird über das vom Docker-Nginx-Proxy "nproxy" bereitgestellte Netzwerk abgewickelt.