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:
@ -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 l’image 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 l’installation 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 qu’il 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:
|
||||
|
||||
Reference in New Issue
Block a user