март 8, 2020

Начало

Краткое описание того, как был запущен этот блог.

Начало

Первая статья. Вспомнился рассказ Айзека Азимова "Последний вопрос", прослушанный по пути на работу в один из обычных дней. Хорошая вещь - рекомендую.
Писать хорошие статьи, прочтение которых будет разумной тратой времени, не так просто, как могло показаться. Причин тому две:

  1. Мысли должны быть полезными.
  2. Изложение должно быть систематизированным.

Система запущена на Ghost - сервер хороший, шустренький, запустился легко, инструментария для такого псевдо-блогера как я более чем хватает. Есть встроенны плагин для выбора картинок с Unspalsh - изображения, которые можно публиковать и не боятся, что к тебе придут с претензией на нарушение авторских прав.
docker-compose.yml, которым это всё дело можно с лёгкостью поднять, представлен ниже.

version: '3.7'

services:
  ghost:
    image: ghost:3.9.0-alpine
    container_name: ghost
    restart: unless-stopped
    port:
      - '80:2368'
    volumes:
      - /data/ghost:/var/lib/ghost/content:rw
    environment:
      - url=http://example.com
    logging:
      driver: json-file
      options:
        max-size: 100m
docker-compose.yml

На что стоит обратить внимание

  1. Всегда стоит закреплять версию образа, с которого будет запускаться контейнер. Это поможет избежать проблем с перезапуском стека в дальнейшем. Если версия была latest, то при пересоздании стека по каким-то причинам down -> up может стянуться более новая версия, которая будет не совместима с текущими данными\настройками и т. д. Кроме того, невозможно через неделю быстро и легко вспомнить какая же точно версия была запущена на момент старта?
  2. Всегда нужно контролировать процесс логгирования. Если используется стандартный Docker logging driver - json-file, то, по умолчанию, Docker daemon будет принимать логи и писать их в json файл для этого контейнера пока место на диске не закончится. По умолчанию, файл всегда будет один, а вот его место мы можем ограничить установив значение опции max-size: 100m (я взял такое, просто так - больше 100 МБ логов вряд ли кто-либо будет читать). Подробнее о json-file Docker logging driver.
  3. Рекомендую всегда прописывать container_name - удобнее потом читать docker ps.