Ghost ist eine Blog - Software und ist zum Beispiel der Unterbau für diesen Blog hier. Ein Zeit lang lief hier die Version 0.11.x von Ghost und seit einigen Tagen wurde nun die Version 1.x veröffentlicht. Das habe ich mir zum Anlass genommen und habe mir nochmal das offizielle Docker Image angeschaut.
horizontal_large
Das schaut nun auch schon viel besser aus. Man konnte aber leider ein paar Sachen nicht konfigurieren (url Adresse) und so habe ich es ein wenig verbessert:

# docker build -t ptimof/ghost .
#
# Build from the official release
FROM ghost:1.5.1-alpine

MAINTAINER Tim Friedrich <info@jimtim.de>
# Default environment variables
ENV URL http://my-ghost-blog.com
ENV MAIL__FROM '<hallo@example.com>'
ENV MAIL__OPTIONS__HOST smtp-relay.example.com
ENV USEMINFILES true

COPY config.production.example.json config.production.example.json
COPY env-defaults.sh /env-defaults.sh
COPY docker-entrypoint.sh /usr/local/bin
RUN dos2unix /env-defaults.sh \
    && dos2unix /usr/local/bin/docker-entrypoint.sh \
    && dos2unix config.production.example.json \
    && apk add --no-cache bash && chmod +x /env-defaults.sh && chmod +x /usr/local/bin/docker-entrypoint.sh

Das docker-entrypoint.sh wurde nur ein wenig abgewandelt. So wird jetzt ein env-default.sh Shell Script am Anfang ausgeführt. Dadurch werden die 4 wichtigsten Variablen bei jeden Container Start gesetzt:

#!/bin/bash

set -e
cp config.production.example.json config.production.json
sed -i "s#<URL>#\"${URL}\"#" config.production.json
sed -i "s#<MAIL__FROM>#\"${MAIL__FROM}\"#" config.production.json
sed -i "s#<MAIL__OPTIONS__HOST>#\"${MAIL__OPTIONS__HOST}\"#" config.production.json
sed -i "s#<USEMINFILES>#${USEMINFILES}#" config.production.json

Damit das Zusammenwirken aber noch klarer wird, könnt ihr euch einfach mein Repo dazu anschauen. Wenn es da Fragen oder Anregungen gibt, könnt ihr auch gerne ein Ticket eröffnen.

Ihr könnt aber auch gerne euch die fertigen Images pullen und ein wenig rumprobieren.

docker run --name some-ghost -p 80:2368 -d jimtim/ghost-alpine
# aber am besten benutzt ihr einfach die docker-compose im Ordner

Also im diesen Sinne: Frohes Bloggen mit der Version 1.5.1