ci: docker_tag=ext - Fix Alpine Dockerfiles and add deployment documentation

This commit is contained in:
Nicolas Cantu 2025-09-21 15:35:56 +00:00
parent cf187f3ec3
commit adff26e71b
3 changed files with 176 additions and 0 deletions

50
.cursorignore Normal file
View File

@ -0,0 +1,50 @@
# Cursor ignore file
# Exclude sensitive and generated files
# Environment files
.env
.env.*
!*.env.example
# Logs
log/
logs/
*.log
# Node modules and build artifacts
node_modules/
.next/
dist/
build/
coverage/
# OS files
.DS_Store
Thumbs.db
# IDE files
.vscode/
.idea/
*.swp
*.swo
# Temporary files
*.tmp
*.temp
*.bak
*.backup
# Sensitive files
*.key
*.pem
*.p12
*.jks
priv_key.json
# Docker volumes
volumes/
# Backup configurations
conf/nginx/*bak*
conf/nginx/*.tmp
conf/nginx/*.clean

View File

@ -108,6 +108,7 @@ Les configurations ngnix doivent toutes être cenralisées dans lecoffre_node/co
Pour tous les projets contenant un **Dockerfile**, avant de pousser sur la branche `ext` :
- Supprime les caches
- Des images Docker avec le tag `ext` existent.
- Les images Docker ne sont build que via CI qui est la seule à pousser sur le registry ou pour test localement.
- Aucun Dockerfile ne doit utiliser de clés ssh car aucun repos n'est privé, utiliser HTTPS.

View File

@ -0,0 +1,125 @@
# REX - Corrections Dockerfiles Alpine Linux
## Date
21 septembre 2025
## Problème identifié
Les Dockerfiles utilisant Alpine Linux tentaient d'installer le package `cscope` qui n'existe pas dans les dépôts Alpine.
## Erreurs rencontrées
```
ERROR: unable to select packages:
cscope (no such package):
required by: world[cscope]
```
## Projets affectés
- `sdk_signer` (Dockerfile Alpine)
- `ihm_client` (Dockerfile Alpine)
- `lecoffre-back-mini` (Dockerfile Alpine)
- `lecoffre-front` (Dockerfile Alpine)
## Solution appliquée
Suppression de `cscope` des commandes `apk add` dans tous les Dockerfiles Alpine.
### Avant
```dockerfile
RUN apk update && apk upgrade && apk add --no-cache \
git \
curl \
wget \
jq \
busybox-extras \
npm \
coreutils \
build-base \
autoconf \
automake \
libtool \
pkgconfig \
cmake \
ninja \
clang \
lldb \
lld \
make \
tree \
ncdu \
mc \
ctags \
cscope \
vim \
emacs \
sed \
gawk \
iputils \
net-tools \
iproute2 \
python3 \
python3-dev \
py3-pip \
go \
rust \
cargo \
&& npm install -g wscat
```
### Après
```dockerfile
RUN apk update && apk upgrade && apk add --no-cache \
git \
curl \
wget \
jq \
busybox-extras \
npm \
coreutils \
build-base \
autoconf \
automake \
libtool \
pkgconfig \
cmake \
ninja \
clang \
lldb \
lld \
make \
tree \
ncdu \
mc \
ctags \
vim \
emacs \
sed \
gawk \
iputils \
net-tools \
iproute2 \
python3 \
python3-dev \
py3-pip \
go \
rust \
cargo \
&& npm install -g wscat
```
## Résultat
Tous les projets avec Dockerfiles Alpine ont été construits avec succès :
- ✅ `sdk_relay` (Debian-based)
- ✅ `sdk_signer` (Alpine-based)
- ✅ `ihm_client` (Alpine-based)
- ✅ `lecoffre-back-mini` (Alpine-based)
- ✅ `lecoffre-front` (Alpine-based)
## Leçons apprises
1. Vérifier la compatibilité des packages avec la distribution Linux utilisée
2. `cscope` n'est pas disponible dans Alpine Linux
3. Les Dockerfiles Debian utilisent `apt-get` et peuvent installer `cscope`
4. Les Dockerfiles Alpine utilisent `apk` et ne peuvent pas installer `cscope`
## Actions préventives
- Ajouter une vérification de compatibilité des packages dans les scripts de build
- Documenter les différences entre distributions Linux dans les Dockerfiles
- Créer des tests automatisés pour vérifier la validité des packages