feat(tg-ws-proxy): своя сборка образа на готовых экшенах и push в Harbor #1
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/tg-ws-proxy-image"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Что было
Надо поднять
tg-ws-proxyв home-ops, а готового образа у апстрима нет: его CI собирает только бинарники и.deb/.rpm, в реестры ничего не пушит. Значит образ наш, а обновлять его должен Renovate — тег в реестре обязан совпадать с тегом релиза апстрима.Что правит PR
Репо заведено под свои сборки; в нём один воркфлоу на образ, собранный из готовых экшенов:
actions/checkout@v7.0.1— исходники апстрима по тегу (repository/ref/path,persist-credentials: false);docker/login-action@v4.6.0— вход в Harbor кредами robot-аккаунта;docker/build-push-action@v7.4.0— сборка и push (context: src,push: true,pull: true,provenance: false).Экшены закреплены тегами версий, без SHA: Renovate правит такие строки сам, номер версии виден в строке. Своими командами остались три шага, которым экшена нет: определение версии (
git ls-remote, без GitHub API), проверка наличия тега (docker manifest inspect) и проверка, что Dockerfile на месте. Тег образа равен тегу релиза апстрима, поэтому прогон идемпотентен, а Renovate в home-ops бампает приложение по этому тегу.Доверие внутреннему CA разведено по трём потребителям: демону — файл в
/etc/docker/certs.d/harbor.grachevko.ru/ca.crt(это даёт home-ops PR #144), экшенам на Node —NODE_EXTRA_CA_CERTS, docker-CLI —SSL_CERT_FILE.Заодно комментарии в файлах переписаны так, чтобы Forgejo не подсвечивал слова-двойники (проверено скриптом).
Проверено
6408e0f4bc5b69ae5094c81a48f6a327058c0565и READMEcf63d8ef16d40b49b52c10a62e639b81243c3683(белый список слов-двойников — exit 0 для обеих локалей проверки; YAML разбирается парсером).actions/checkoutv7.0.1,docker/login-actionv4.6.0,docker/build-push-actionv7.4.0 (последние релизы этих репо на 23.09.2026).python:3.12-slim, в рантайме venv сcryptography+certifiиtini,EXPOSE 1443, настройка черезTG_WS_PROXY_*; тегv1.10.4(релиз от 19.09.2026) существует.Не проверено прогоном (покажет первый запуск): наличие плагина
buildxв образе job-пода (без негоbuild-push-actionпадает) и поведение Node-экшенов при нашем внутреннем CA. Еслиbuildxнет — правильный ход не ставить его в шаге, а добавить в образ раннера (bjw-s-labs/container-images).После мёржа (твои шаги)
grachevko→ Robots → New robot, праваpull+push. Если проект назван иначе — скажи, поправлю строку образа (одно место).container-images→ Settings → Actions → Secrets:HARBOR_ROBOT_USERиHARBOR_ROBOT_TOKEN.podspec-dind), затем Actions → tg-ws-proxy → Run workflow (входversion— пусто).v1.10.4в Harbor появился, и выкачу приложение в nsdefault.Откат
Удалить
.forgejo/workflows/tg-ws-proxy.yamlи секреты репозитория: до первого прогона PR ничего вне этого репозитория не создаёт.feat(tg-ws-proxy): своя сборка образа и push в Harborto feat(tg-ws-proxy): своя сборка образа на готовых экшенах и push в Harbor