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>
39 lines
1.0 KiB
Docker
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"]
|