Недавно я узнал о "карманном" PaaS похожем на Heroku с довольно очевидным названием — Dokku. Очень привлекла возможность простого добавления сертификата к приложению и vhost из коробки, поэтому я решил перенести свои docker образы на Dokku. Правда, я был разочарован тем, что в Dokku нет команд подобных Heroku
dokku container:push
dokku container:release
// Очень было бы удобно, но еще нет :(
Существует команда tags которая позволяет деплоить образы, но сам образ должен быть уже на хосте в этот момент. Иными словами, чтобы выкатить только что сделанный локальный image его нужно сначала скопировать на хост.
tags:create <app> <tag> # Add tag to latest running app image
tags:deploy <app> <tag> # Deploy tagged app image
tags:destroy <app> <tag> # Remove app image tag
Я знаком с Ansible и даже создавал с его помощью простые пайплайны для доставки бекенда, поэтому выбор был прост. Можно было бы конечно запариться и написать плагин к dokku, но нет, не сейчас.
Playbook
Этот playbook архивирует некий локальный образ, копирует на хост, восстанавливает и деплоит его в dokku. Разместил в Gitlab репе. Возможностей для улучшения еще полно.