perf(container): образ без apt-зависимостей и встроенный healthcheck

- рантайм не тянет ca-certificates/tzdata/curl: bundle сертификатов копируется
  из официального alpine-образа, healthcheck выполняет сам бинарник
- cmd/glchat: подкоманда healthcheck (HTTP-запрос к /healthz с таймаутом)
- compose: APP_VERSION передаётся в environment (версия видна в meta без пересборки)
- бюджет §9.1: базовый слой debian-slim + 9.2 MB бинарник + 356 KB клиент
This commit is contained in:
2026-09-19 19:37:06 +03:00
parent b13f9a7479
commit 35cf719d58
3 changed files with 52 additions and 6 deletions
+2 -1
View File
@@ -12,6 +12,7 @@ x-app-env: &app-env
DOMAIN: "${DOMAIN}"
FILES_DOMAIN: "${FILES_DOMAIN}"
INSTANCE_NAME: "${INSTANCE_NAME}"
APP_VERSION: "${IMAGE_TAG}"
LISTEN_ADDR: "0.0.0.0:8080"
DATA_DIR: "/app/data"
WEB_ROOT: "/app/web"
@@ -46,7 +47,7 @@ services:
cpus: "${APP_CPUS}"
memory: ${APP_MEMORY_LIMIT}
healthcheck:
test: ["CMD", "curl", "-fsS", "http://127.0.0.1:8080/healthz"]
test: ["CMD", "/usr/local/bin/glchat", "healthcheck"]
interval: 30s
timeout: 5s
start_period: 20s