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 работает и можно все оставить как есть, но я рекомендую чуть-чуть настроить конфигурацию.
Остановим наш блог:
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