126 lines
2.5 KiB
Markdown
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
|