Исправлен push multi-arch релиза; обновлена документация с разделом «Что нового».
This commit is contained in:
@@ -85,6 +85,7 @@ buildx-setup:
|
||||
|
||||
# Multi-arch release: linux/amd64 + linux/arm64 → Docker Hub manifest list.
|
||||
# PUSH=1 (default): buildx --push. PUSH=0: build only (cache; cannot --load multi-arch).
|
||||
# Only tag $(FULL_IMAGE) — a bare "$(IMAGE_NAME):tag" would push to docker.io/library/...
|
||||
release: env buildx-setup
|
||||
@echo "Building $(FULL_IMAGE) [$(RELEASE_PLATFORMS)]"
|
||||
@if [ "$(PUSH)" = "1" ]; then \
|
||||
@@ -93,20 +94,18 @@ release: env buildx-setup
|
||||
--provenance=false \
|
||||
--sbom=false \
|
||||
-t $(FULL_IMAGE) \
|
||||
-t $(IMAGE_NAME):$(IMAGE_TAG) \
|
||||
--push \
|
||||
.; \
|
||||
echo "Pushed $(FULL_IMAGE) (multi-arch)"; \
|
||||
docker buildx imagetools inspect $(FULL_IMAGE) | sed -n '1,40p'; \
|
||||
. \
|
||||
&& echo "Pushed $(FULL_IMAGE) (multi-arch)" \
|
||||
&& docker buildx imagetools inspect $(FULL_IMAGE) | sed -n '1,40p'; \
|
||||
else \
|
||||
docker buildx build \
|
||||
--platform $(RELEASE_PLATFORMS) \
|
||||
--provenance=false \
|
||||
--sbom=false \
|
||||
-t $(FULL_IMAGE) \
|
||||
-t $(IMAGE_NAME):$(IMAGE_TAG) \
|
||||
.; \
|
||||
echo "PUSH=0 — multi-arch built into buildx cache (not pushed, not loaded locally)"; \
|
||||
. \
|
||||
&& echo "PUSH=0 — multi-arch built into buildx cache (not pushed, not loaded locally)"; \
|
||||
fi
|
||||
@$(MAKE) helm-package IMAGE_TAG=$(IMAGE_TAG)
|
||||
|
||||
|
||||
@@ -14,10 +14,23 @@
|
||||
- RU / EN, светлая и тёмная тема
|
||||
- CAPTCHA: Cloudflare Turnstile и/или hCaptcha
|
||||
- админка: **статистика**, настройки, audit (пагинация + очистка), danger purge
|
||||
- Docker Compose и Helm; образ на Docker Hub: [`inecs/wrapped`](https://hub.docker.com/r/inecs/wrapped)
|
||||
- Docker Compose и Helm; multi-arch образ (`amd64`/`arm64`) на Docker Hub: [`inecs/wrapped`](https://hub.docker.com/r/inecs/wrapped)
|
||||
|
||||
Ссылка для получателя: `/w/<id>#<key>` или токен `wrapped_v1.<id>.<key>`. Ключ шифрования в URL-фрагменте (`#...`) на сервер не уходит.
|
||||
|
||||
## Что нового
|
||||
|
||||
Кратко по недавним доработкам UI, админки и релиза:
|
||||
|
||||
| Область | Что появилось |
|
||||
|---------|----------------|
|
||||
| **Расшифровка** | Прокрутка превью текста по вертикали и горизонтали; кнопка **Копировать** рядом со скачиванием |
|
||||
| **Пароль** | Argon2-проверка *до* выдачи ciphertext; лимит попыток; пустой пароль попытку не тратит; структурированные ошибки в UI |
|
||||
| **Админка** | Стартовая **Статистика** (MinIO, wraps, audit); очистка audit с подтверждением; пагинация журнала |
|
||||
| **Релиз** | `make release` собирает **multi-arch** манифест `linux/amd64` + `linux/arm64` через Buildx и пушит только `inecs/wrapped:<tag>` |
|
||||
|
||||
Подробности — в разделах ниже (безопасность, админка, сборка образа).
|
||||
|
||||
## Скриншоты
|
||||
|
||||
Интерфейс на русском и английском, светлая и тёмная тема.
|
||||
@@ -384,6 +397,7 @@ JSON Admin API: HTTP Basic (`ADMIN_USERNAME` / `ADMIN_PASSWORD`), тег OpenAPI
|
||||
### Docker Hub (`make release`)
|
||||
|
||||
Сборка **multi-arch** (`linux/amd64` + `linux/arm64`) через Docker Buildx и push манифеста на Docker Hub.
|
||||
Пушится только полный тег `$(RELEASE_REGISTRY)/$(IMAGE_NAME):$(IMAGE_TAG)` (по умолчанию `inecs/wrapped:…`) — короткий тег вроде `wrapped:0.1.0` при `--push` ушёл бы в `docker.io/library/…` и получил бы отказ в авторизации.
|
||||
|
||||
```bash
|
||||
docker login # пользователь inecs
|
||||
@@ -394,6 +408,7 @@ make release RELEASE_PLATFORMS=linux/arm64 # одна платформа
|
||||
```
|
||||
|
||||
Нужны Docker Buildx и (для cross-build) QEMU/эмуляция — на Docker Desktop обычно уже есть.
|
||||
Первый запуск создаёт builder `wrapped-release` (`make buildx-setup` внутри `release`).
|
||||
|
||||
Эквивалент:
|
||||
|
||||
@@ -405,6 +420,7 @@ docker buildx build \
|
||||
--push .
|
||||
```
|
||||
|
||||
После успешного push Makefile печатает краткий `imagetools inspect` (платформы в манифесте).
|
||||
Образ при старте: `alembic upgrade head` + uvicorn `:8000`. Healthcheck: `GET /health`.
|
||||
|
||||
### Git (`make push`)
|
||||
@@ -467,7 +483,8 @@ external:
|
||||
| `make logs` / `make ps` / `make restart` | Логи, статус, рестарт app |
|
||||
| `make migrate` | `alembic upgrade head` |
|
||||
| `make revision m="msg"` | Новая alembic-ревизия |
|
||||
| `make release` | Multi-arch образ (amd64+arm64) на Docker Hub (+ Helm package) |
|
||||
| `make release` | Multi-arch образ (amd64+arm64) → Docker Hub (`inecs/wrapped`) + Helm package |
|
||||
| `make buildx-setup` | Создать/выбрать Buildx builder `wrapped-release` (вызывается из `release`) |
|
||||
| `make push` | git add → многострочный commit (Ctrl-D) → push |
|
||||
| `make helm-lint` / `make helm-package` | Helm |
|
||||
|
||||
@@ -479,6 +496,7 @@ external:
|
||||
- PostgreSQL 16+
|
||||
- S3-совместимое хранилище (MinIO и т.п.)
|
||||
- Docker Compose v2
|
||||
- для `make release`: Docker Buildx (+ QEMU для cross-build arm64 на amd64 и наоборот)
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user