Files
ja4sentinel/packaging/Dockerfile.deb
Jacquin Antoine 9280cb545c feat: version 1.0.0 avec corrections critiques et nommage de packages
Ajout du point d'entrée principal :
- cmd/ja4sentinel/main.go : pipeline complet avec gestion des signaux
- Intégration des modules (capture, tlsparse, fingerprint, output)
- Shutdown propre avec context.Context

Corrections du parsing TLS :
- Flow key unidirectionnel (client → serveur uniquement)
- Timeout de flux configurable via FlowTimeoutSec
- Structure ConnectionFlow simplifiée

Améliorations de l'API :
- Champs TCPMSS et TCPWScale en pointeurs (omitempty correct)
- NewLogRecord mis à jour pour les champs optionnels

Mise à jour de l'architecture :
- architecture.yml : documentation des champs optionnels
- Règles de flux unidirectionnel documentées

Système de packages :
- Version par défaut : 1.0.0
- Nommage cohérent : ja4sentinel_1.0.0_amd64.deb
- Scripts build-deb.sh et build-rpm.sh simplifiés
- Extraction correcte des checksums

Tests :
- TestFlowKey mis à jour pour le format unidirectionnel
- Tous les tests passent (go test ./...)
- go vet clean

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-26 23:24:42 +01:00

39 lines
1.0 KiB
Docker

# Dockerfile for building DEB packages for Debian/Ubuntu
# Use Go 1.24 as base to ensure correct Go version
FROM golang:1.24-bookworm AS builder
# Install DEB build tools
RUN apt-get update && apt-get install -y \
dpkg-dev \
fakeroot \
lintian \
libpcap-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy source code
COPY . .
# Build binary
ARG VERSION=1.0.0
RUN mkdir -p dist && \
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 \
go build -buildvcs=false -o dist/ja4sentinel-linux-amd64 ./cmd/ja4sentinel
# Build DEB for Debian/Ubuntu
ARG ARCH=amd64
RUN mkdir -p /app/packages && \
./packaging/build-deb.sh "${VERSION}" "${ARCH}" "debian" && \
cp /app/build/deb/*.deb /app/packages/ && \
cp /app/build/deb/*.sha256 /app/packages/ 2>/dev/null || true
# Final stage - minimal image with just the packages
FROM alpine:latest
WORKDIR /packages
COPY --from=builder /app/packages/ /packages/
# Output list of packages
CMD ["sh", "-c", "ls -la /packages/ && echo '---' && cat /packages/*.sha256 2>/dev/null || true"]