Универсальный 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) или юзер без привелегий