Как у htop-web: Drone собирает backend/Dockerfile и кладёт образ в реестр Gitea.
.drone.yml: на PR образ только собирается (dry_run), на master пушится в gitea.jambotron.com/jambotron_gang/reactive-mail-server с тегами latest и первыми 8 символами коммита.
docker-compose.image.yml: тот же стенд, что docker-compose.jambotron.yml, но сервис mail берётся из образа (pull_policy: always, тег можно закрепить через MAIL_IMAGE_TAG). На ВМ ничего не собирается.
.dockerignore: в контекст сборки не попадают node_modules, build, dist и .git.
README: новый раздел «Готовый Docker-образ».
Проверено: образ собирается локально (2 мин 10 с), docker compose -f docker-compose.image.yml up на нём поднимается, сервис mail становится healthy, создаются ящики admin и trap. Стенд после проверки удалён.
Drone: репозиторий активирован, добавлены секреты REGISTRY_USERNAME/REGISTRY_PASSWORD (jambotron-bot, тот же токен write:package, что у пайплайна Jambotron). Первый образ появится после мержа в master.
Как у htop-web: Drone собирает `backend/Dockerfile` и кладёт образ в реестр Gitea.
- `.drone.yml`: на PR образ только собирается (`dry_run`), на `master` пушится в `gitea.jambotron.com/jambotron_gang/reactive-mail-server` с тегами `latest` и первыми 8 символами коммита.
- `docker-compose.image.yml`: тот же стенд, что `docker-compose.jambotron.yml`, но сервис `mail` берётся из образа (`pull_policy: always`, тег можно закрепить через `MAIL_IMAGE_TAG`). На ВМ ничего не собирается.
- `.dockerignore`: в контекст сборки не попадают `node_modules`, `build`, `dist` и `.git`.
- README: новый раздел «Готовый Docker-образ».
Проверено: образ собирается локально (2 мин 10 с), `docker compose -f docker-compose.image.yml up` на нём поднимается, сервис `mail` становится healthy, создаются ящики admin и trap. Стенд после проверки удалён.
Drone: репозиторий активирован, добавлены секреты `REGISTRY_USERNAME`/`REGISTRY_PASSWORD` (`jambotron-bot`, тот же токен `write:package`, что у пайплайна Jambotron). Первый образ появится после мержа в `master`.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Как у htop-web: Drone собирает
backend/Dockerfileи кладёт образ в реестр Gitea..drone.yml: на PR образ только собирается (dry_run), наmasterпушится вgitea.jambotron.com/jambotron_gang/reactive-mail-serverс тегамиlatestи первыми 8 символами коммита.docker-compose.image.yml: тот же стенд, чтоdocker-compose.jambotron.yml, но сервисmailберётся из образа (pull_policy: always, тег можно закрепить черезMAIL_IMAGE_TAG). На ВМ ничего не собирается..dockerignore: в контекст сборки не попадаютnode_modules,build,distи.git.Проверено: образ собирается локально (2 мин 10 с),
docker compose -f docker-compose.image.yml upна нём поднимается, сервисmailстановится healthy, создаются ящики admin и trap. Стенд после проверки удалён.Drone: репозиторий активирован, добавлены секреты
REGISTRY_USERNAME/REGISTRY_PASSWORD(jambotron-bot, тот же токенwrite:package, что у пайплайна Jambotron). Первый образ появится после мержа вmaster.🤖 Generated with Claude Code