docs: update architecture.yml with unified packaging section
- Add packaging section describing DEB and RPM builds with fpm - Document Dockerfile.package multi-stage build pipeline - List files, directories, maintainer scripts, and dependencies - Add verification commands for both package types Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
@ -570,10 +570,89 @@ evolution:
|
||||
dev_tools:
|
||||
usage_guidelines:
|
||||
- "Les outils IA doivent lire architecture.yml avant de générer ou modifier du code."
|
||||
- "Les outils de test peuvent s’appuyer sur ci_cd.docker et ci_cd.make_targets pour générer des scripts / pipelines."
|
||||
- "Les outils de test peuvent s'appuyer sur ci_cd.docker et ci_cd.make_targets pour générer des scripts / pipelines."
|
||||
future_extensions:
|
||||
- "Génération automatique de Dockerfile.dev et Dockerfile à partir de cette section."
|
||||
- "Génération de fichiers docker-compose.test.yml pour les scénarios d’intégration."
|
||||
- "Génération de fichiers docker-compose.test.yml pour les scénarios d'intégration."
|
||||
|
||||
packaging:
|
||||
description: >
|
||||
ja4sentinel est distribué sous forme de packages .deb (Debian/Ubuntu) et
|
||||
.rpm (Rocky Linux/RHEL/CentOS), construits intégralement dans Docker avec fpm.
|
||||
formats:
|
||||
- deb
|
||||
- rpm
|
||||
target_distros:
|
||||
deb:
|
||||
- debian-12+
|
||||
- ubuntu-22.04+
|
||||
rpm:
|
||||
- rocky-linux-8+
|
||||
- rocky-linux-9+
|
||||
- rhel-8+
|
||||
- rhel-9+
|
||||
tool: fpm
|
||||
build_pipeline:
|
||||
dockerfile: Dockerfile.package
|
||||
stages:
|
||||
- name: builder
|
||||
description: >
|
||||
Compilation du binaire Go avec CGO_ENABLED=1 pour libpcap.
|
||||
GOOS=linux GOARCH=amd64 pour un binaire statique.
|
||||
- name: package_builder
|
||||
description: >
|
||||
Installation de fpm, rpm, dpkg-dev. Création de l'arborescence
|
||||
et exécution de fpm pour générer DEB et RPM.
|
||||
- name: output
|
||||
description: >
|
||||
Image Alpine minimale contenant les packages dans /packages/deb et /packages/rpm.
|
||||
files:
|
||||
binary:
|
||||
source: dist/ja4sentinel-linux-amd64
|
||||
dest: /usr/bin/ja4sentinel
|
||||
mode: "0755"
|
||||
systemd:
|
||||
source: packaging/systemd/ja4sentinel.service
|
||||
dest: /usr/lib/systemd/system/ja4sentinel.service
|
||||
mode: "0644"
|
||||
config:
|
||||
- source: packaging/systemd/config.yml
|
||||
dest: /etc/ja4sentinel/config.yml.default
|
||||
mode: "0640"
|
||||
config_file: true
|
||||
- source: packaging/systemd/config.yml
|
||||
dest: /usr/share/ja4sentinel/config.yml
|
||||
mode: "0640"
|
||||
directories:
|
||||
- path: /var/lib/ja4sentinel
|
||||
mode: "0750"
|
||||
- path: /var/log/ja4sentinel
|
||||
mode: "0750"
|
||||
- path: /var/run/ja4sentinel
|
||||
mode: "0750"
|
||||
- path: /etc/ja4sentinel
|
||||
mode: "0750"
|
||||
maintainer_scripts:
|
||||
deb:
|
||||
postinst: packaging/deb/postinst
|
||||
prerm: packaging/deb/prerm
|
||||
postrm: packaging/deb/postrm
|
||||
rpm:
|
||||
post: packaging/deb/postinst
|
||||
preun: packaging/deb/prerm
|
||||
postun: packaging/deb/postrm
|
||||
dependencies:
|
||||
deb:
|
||||
- systemd
|
||||
- libpcap0.8
|
||||
rpm:
|
||||
- systemd
|
||||
- libpcap >= 1.9.0
|
||||
verify:
|
||||
deb:
|
||||
command: docker run --rm -v $(pwd)/build/deb:/packages debian:latest sh -c "apt-get update && apt-get install -y /packages/*.deb"
|
||||
rpm:
|
||||
command: docker run --rm -v $(pwd)/build/rpm:/packages rockylinux:8 sh -c "dnf install -y /packages/*.rpm"
|
||||
|
||||
service:
|
||||
systemd:
|
||||
|
||||
Reference in New Issue
Block a user