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:
Jacquin Antoine
2026-02-27 15:41:29 +01:00
parent 8fc14c1e94
commit 0d84a1284f

View File

@ -468,38 +468,74 @@ docker:
packaging:
description: >
logcorrelator doit être distribué en package .rpm pour Rocky Linux (8+),
construit intégralement dans Docker à partir du binaire compilé.[web:96][web:99][web:101]
logcorrelator 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:
- rocky-linux-8+
- rocky-linux-9+
deb:
- debian-12+
- ubuntu-22.04+
rpm:
- rocky-linux-8+
- rocky-linux-9+
- rhel-8+
- rhel-9+
tool: fpm
build_pipeline:
steps:
- name: build_binary_in_docker
dockerfile: Dockerfile.package
stages:
- name: builder
description: >
Utiliser limage builder pour compiler logcorrelator et installer le
binaire dans un répertoire de staging (par ex. /tmp/pkgroot/usr/bin/logcorrelator).
- name: prepare_filesystem_layout
Compilation du binaire Go avec CGO_ENABLED=0 pour un binaire statique.
GOOS=linux GOARCH=amd64.
- name: package_builder
description: >
Créer la hiérarchie :
- /usr/bin/logcorrelator
- /etc/logcorrelator/logcorrelator.toml (exemple)
- /etc/systemd/system/logcorrelator.service (unit)
- /var/log/logcorrelator (répertoire de logs)
- name: run_fpm_in_docker
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: >
Lancer un conteneur fpm (par ex. image ruby:fpm) avec montage de
/tmp/pkgroot, et exécuter fpm -s dir -t rpm pour générer le .rpm
compatible Rocky Linux.
- name: verify_rpm_on_rocky
description: >
Tester linstallation et le démarrage du service dans un conteneur
Rocky Linux 8/9 (docker run --rm -it rockylinux:8), en installant le
.rpm, en activant le service systemd et en vérifiant quil démarre
correctement.
Image Alpine minimale contenant les packages dans /packages/deb et /packages/rpm.
files:
binary:
source: dist/logcorrelator
dest: /usr/bin/logcorrelator
mode: "0755"
config:
- source: config.example.conf
dest: /etc/logcorrelator/logcorrelator.conf
mode: "0640"
config_file: true
- source: config.example.conf
dest: /usr/share/logcorrelator/logcorrelator.conf.example
mode: "0640"
directories:
- path: /var/log/logcorrelator
mode: "0755"
- path: /var/run/logcorrelator
mode: "0755"
- path: /etc/logcorrelator
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
rpm:
- systemd
verify:
deb:
command: docker run --rm -v $(pwd)/dist/deb:/packages debian:latest sh -c "apt-get update && apt-get install -y /packages/*.deb"
rpm:
command: docker run --rm -v $(pwd)/dist/rpm:/packages rockylinux:8 sh -c "dnf install -y /packages/*.rpm"
non_functional:
performance: