Проект для создания и эксплуатации серверных приложений с помощью контейнеров Docker
- Все контейнеры docker публикуются как автоматические билды, вся приватная информация размещается в каталоге, являющимся текущим при запуске контейнера
- Каждый контейнер представляет собой логический сервис, который может состоять из нескольких процессов. Например, сервис postgresql, кроме СУБД, содержит сервер dbcc для автоматического создания БД и пользователей. Эти процессы управляются supervisor
- Взаимодействие между контейнерами осуществляется с помощью consul (каждый контейнер линкуется с контейнером consul и содержит в своем составе consul agent, который дополнительно выполняет функции Health check сервисов контейнера)
- Совместно используемые контейнеры описываются как зависимости. Например, единственный запущенный контейнер postgres может использоваться несколькими другими контейнерами. При старте контейнера его зависимости запускаются автоматически.
- Конфигурация контейнеров задается в yml-файлах, трансляция которых в аргументы docker производится bash-скриптом fidm
Системные
- consul - сервис регистрации, мониторинга контейнеров и key-value хранилище конфигураций
- nginx - фронтенд http-сервисов, автогенерация сертификатов Let's Encrypt, сервис статических сайтов
- postgresql - СУБД Postgresql
Прикладные
- consul-ui - Web-интерфейс с consul
- webhook - сервис Continuous integration
- gitbook - генерация статического сайта документации по файлам Markdown
- gogs - управление Git
- mattermost - платформа обмена сообщениями
- pdns - DNS-сервер
См. также: Dockerfiles/*/
Установка производится на хост с 64bit linux (64bit - это требование docker).
Ниже описывается вариант для apt-based ОС (Debian, Ubuntu), в других дистрибутивах установка make и wget производится аналогично.
При установке пакета потребуется пароль для sudo.
which make > /dev/null || sudo apt-get install make
Если в системе не установлен wget, он ставится аналогично:
which wget > /dev/null || sudo apt-get install wget
Загрузка Makefile и конфигураций fidm:
cd /opt
wget -qO- https://raw.githubusercontent.com/LeKovr/consup/master/install.sh | sh
Установка docker и fidm (потребуется пароль для sudo)
docker будет установлен согласно инструкции. Если такой вариант не подходит, надо предварительно поставить docker вручную.
cd /opt/consup
make deps
Для того, чтобы текущий пользователь мог работать с docker, его надо добавить в группу docker:
sudo usermod -a -G docker $USER
The MIT License (MIT), see LICENSE.
Copyright (c) 2014 - 2017 Alexey Kovrizhkin lekovr@gmail.com