Запускаем свой блог на Ghost с помощью docker-compose

в 14:38, , рубрики: devops, docker, docker-compose, Ghost, Серверное администрирование, хостинг

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

Начнем!

Во-первых, проверьте что на вашей машине установлен docker и docker-compose. Команды приведенные ниже должны вывести версии этих утилит.

docker -v
docker-compose -v

В Docker Hub есть официальный образ с Ghost, его мы и будем использовать в нашем docker-compose.yml файле.

Создадим docker-compose.yml файл

touch docker-compose.yml

И вставим в него следующие строки

version: '2'
services:
  web:
    restart: always
    image: ghost
    ports:
      - "80:2368"
    volumes:
      - {path_to_save_ghost_data}:/var/lib/ghost

Заменим {path_to_save_ghost_data} на путь в котором Ghost будет хранить свою конфигурацию и БД, например у меня это /home/administrator/ghost.
Все готово для того чтобы запустить Ghost на вашей машине:

 docker-compose up -d

Предлагаю проверить что Ghost завелся и работает. Откройте в своем браузере адрес машины на которой установлен Ghost — вы должны увидеть стандартное приветствие.

Ghost initial page

В принципе Ghost работает и можно все оставить как есть, но я рекомендую чуть-чуть настроить конфигурацию.

Остановим наш блог:

 docker-compose up -d

Откроем конфигурационный файл, находящийся по адресу {path_to_save_ghost_data}/config.js, в моем случае это /home/administrator/ghost/config.js.
Найдем секцию development (да! не production, т.к. по некоторым причинам невозможно запустить Ghost в production режиме внутри Docker, если вы знаете способ расскажите о нем в комментариях).
Укажите адрес своего блога и адрес отправителя, должно получится примерно так:

development: {
        url: 'https://blog.ambar.cloud', // адрес вашего блога
        mail: {
          from: 'hello@ambar.cloud', // адрес отправителя
        },
        database: {
            client: 'sqlite3',
            connection: {
                filename: path.join(process.env.GHOST_CONTENT, '/data/ghost-dev.db')
            },
            debug: false
        },
        server: {
            host: '0.0.0.0',
            port: '2368'
        },
        paths: {
            contentPath: path.join(process.env.GHOST_CONTENT, '/')
        }
    },

Запустим блог, и проверим что все работает

docker-compose up -d

На этом все, спасибо за внимание! В следующей статье я расскажу как быстро настроить OpenVPN c помощью docker-compose.

Автор: Ilya

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js