lecoffre_node/docs/REX_Dockerfile_Fixes.md

126 lines
2.5 KiB
Markdown

# 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