ci: docker_tag=ext - Fix Alpine Dockerfiles and add deployment documentation
This commit is contained in:
parent
cf187f3ec3
commit
adff26e71b
50
.cursorignore
Normal file
50
.cursorignore
Normal 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
|
@ -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` :
|
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.
|
- 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.
|
- 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.
|
- Aucun Dockerfile ne doit utiliser de clés ssh car aucun repos n'est privé, utiliser HTTPS.
|
||||||
|
125
docs/REX_Dockerfile_Fixes.md
Normal file
125
docs/REX_Dockerfile_Fixes.md
Normal 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
|
Loading…
x
Reference in New Issue
Block a user