- Ajout des cibles make ci, ci-test, ci-build, ci-package, ci-package-test - Correction des chemins de sortie des packages (build/deb, build/rpm) - Build RPM sur Rocky Linux 9 pour dépendances correctes (libpcap.so.1) - Fix tests RPM (command -v au lieu de which, fallback libpcap) - Tous les tests passent (11/11 DEB, 11/11 RPM) Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
44 lines
1.0 KiB
Docker
44 lines
1.0 KiB
Docker
# Dockerfile for building RPM packages for Rocky Linux
|
|
# Use Rocky Linux 9 as the build environment for correct RPM dependencies
|
|
FROM rockylinux:9 AS builder
|
|
|
|
# Install Go and RPM build tools
|
|
# CRB repository needed for some development packages
|
|
RUN dnf install -y epel-release && \
|
|
dnf install -y \
|
|
golang \
|
|
rpm-build \
|
|
rpmdevtools \
|
|
gcc \
|
|
make \
|
|
git \
|
|
&& dnf install -y --enablerepo=crb libpcap-devel \
|
|
&& dnf clean all
|
|
|
|
# Verify Go version
|
|
RUN go version
|
|
|
|
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 RPM for Rocky Linux (RHEL compatible)
|
|
ARG ARCH=x86_64
|
|
RUN mkdir -p /app/packages && \
|
|
./packaging/build-rpm.sh "${VERSION}" "${ARCH}" "rocky" && \
|
|
cp /app/build/rpm/*.rpm /app/packages/
|
|
|
|
# Final stage - minimal image with just the RPM
|
|
FROM alpine:latest
|
|
|
|
COPY --from=builder /app/packages/ /packages/
|
|
|
|
CMD ["ls", "-la", "/packages/"]
|