Sprint 0 / #18: multi-stage Dockerfile и супервизор entrypoint #48
Reference in New Issue
Block a user
Delete Branch "feat/18-dockerfile"
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?
Refs #18, Refs #15.
Что сделано
go-build(golang:1.23-alpine): клонирует и собираетamneziawg-goиamneziawg-tools(awg), ревизии параметризованыAMNEZIAWG_GO_REF/AMNEZIAWG_TOOLS_REF;runtime(alpine:3.21): iptables/ip6tables, ipset, iproute2, dnsmasq, curl, tini, su-exec, python3 + venv сrequirements.txt; сборка Python-зависимостей через временные.build-deps(образ не тащит компилятор);awg(непривилегированный) для API-процесса; каталоги/config,/data,/run/awg(VOLUME),EXPOSE 8080,LABELс источником;HEALTHCHECKнаhttp://127.0.0.1:8080/api/v1/health(эндпоинт появится в #31);ENTRYPOINTчерезtiniдля корректной обработки сигналов./dev/net/tun, доступ к iptables, наличиеawg/ipset) с явным FATAL вместо тихой деградации, подготовка каталогов состояния, запись таблицы 100awg-vpnв/etc/iproute2/rt_tables, включениеip_forward, запускawg-apiподsu-exec awgи проброс кода возврата в Docker..conf(только заглушки, без ключей).Что НЕ проверено (честно)
docker(docker: command not found). Сборка и проверкаawg --version/ipset --version/ размер ≤250 MB должны быть выполнены там, где есть Docker — это зависит от #17 (CI runner) и #21 (стенд).amneziawg-*в build-args взяты по upstream-референсу PoC; перед релизом их нужно запинить на проверенный тег (учтено в #45).amneziawg-goв userspace-режиме не тестировался (нет стенда).Гейты
Pull request closed