build(security): образы пинятся по digest
AGENT.md 11.3 требует фиксировать образы по digest: тег в реестре может быть перезаписан. Закреплены базовые образы Dockerfile (node, golang, alpine) и образы установщика (caddy, livekit-server). Digest'ы проверены на стенде: сборка образа и пересоздание LiveKit проходят, caddy тянется по digest.
This commit is contained in:
+6
-3
@@ -1,7 +1,10 @@
|
||||
# Образы пинятся по digest (AGENT.md 11.3): тег может быть перезаписан в
|
||||
# реестре, digest — нет. Обновление: получить новый digest
|
||||
# (`docker buildx imagetools inspect <образ>` или Docker Hub API) и заменить.
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
# ---------- web ----------
|
||||
FROM node:24-bookworm-slim AS web
|
||||
FROM node:24-bookworm-slim@sha256:0e0ff40c39bc087845bfb27465a0df4ea419520094bc35842ff83dd8cbe6f9b6 AS web
|
||||
WORKDIR /src/web
|
||||
COPY web/package.json web/package-lock.json ./
|
||||
RUN npm ci --no-audit --no-fund
|
||||
@@ -9,7 +12,7 @@ COPY web/ ./
|
||||
RUN npm run build
|
||||
|
||||
# ---------- go ----------
|
||||
FROM golang:1.27-bookworm AS gobuild
|
||||
FROM golang:1.27-bookworm@sha256:69a7b9788769bec032d238959b61854e9ae87f57be9029ec04e9885fabf99195 AS gobuild
|
||||
WORKDIR /src
|
||||
ARG VERSION=dev
|
||||
ARG COMMIT=none
|
||||
@@ -36,7 +39,7 @@ RUN CC=musl-gcc CGO_ENABLED=1 go build \
|
||||
# ---------- runtime ----------
|
||||
# База alpine + статический бинарник: образ укладывается в бюджет §9.1
|
||||
# (<50 MB). Проверка: docs/DECISIONS.md, решение D-007.
|
||||
FROM alpine:3.20 AS runtime
|
||||
FROM alpine:3.20@sha256:d9e853e87e55526f6b2917df91a2115c36dd7c696a35be12163d44e6e2a4b6bc AS runtime
|
||||
|
||||
RUN addgroup -S -g 10001 glchat \
|
||||
&& adduser -S -u 10001 -G glchat -h /app -s /sbin/nologin glchat \
|
||||
|
||||
Reference in New Issue
Block a user