Универсальный github yaml action для сборки docker image и публикации его в ghcr.io
Объяснение по некоторым моментам
Срабатывает на любое действие (пуш) можно еще дописать что-то такое
Что бы не срабатывало на пул риквест
Теги: мне в какой то момент надоело создавать 2 файла, для публикации имедж для dev и prod (master and main) Решение универсальное - просто добавить условие тег с хешем коммита всегда нужен - иногда резко откатить на определенный коммит руками
И почти последнее
push
не срабатывает при пул риквестах, просто что бы сборка проверилась, но не опубликовалась
Автодеплой
Для более продвинутого флоу, добавляем автодеплой
cd path
меняем на вашу папку, обычно /opt я лично использую ${HOME}/lab/service
лучше не использовать рут папку для ваших сервисов, но если это домашняя лаборотория, вполне допустимо
port: port тут
задаём порт для подключения, не храню в секретах, потому что лень каждый раз забивать, порты для ssh я обычно меняю, и ставлю ловушку для ботов
username: user
- тоже не в секретах, потому что это обычно или root (если допустим homelab) или юзер без привелегий