You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/fr/docker.md
+89-16Lines changed: 89 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,10 +4,10 @@ Les images Docker de [FrankenPHP](https://hub.docker.com/r/dunglas/frankenphp) s
4
4
5
5
Des variantes pour PHP 8.2, 8.3, 8.4 et 8.5 sont disponibles. [Parcourir les tags](https://hub.docker.com/r/dunglas/frankenphp/tags).
6
6
7
-
Les tags suivent le pattern suivant: `dunglas/frankenphp:<frankenphp-version>-php<php-version>-<os>`
7
+
Les tags suivent le pattern suivant: `dunglas/frankenphp:<frankenphp-version>-php<php-version>-<os>`
8
8
9
-
-`<frankenphp-version>` et `<php-version>` sont repsectivement les numéros de version de FrankenPHP et PHP, allant de majeur (e.g. `1`), mineur (e.g. `1.2`) à des versions correctives (e.g. `1.2.3`).
10
-
-`<os>` est soit `trixie` (pour Debian Trixie), `bookworm` (pour Debian Bookworm) ou `alpine` (pour la dernière version stable d'Alpine).
9
+
-`<frankenphp-version>` et `<php-version>` sont respectivement les numéros de version de FrankenPHP et PHP, allant de majeur (e.g. `1`), mineur (e.g. `1.2`) à des versions correctives (e.g. `1.2.3`).
10
+
-`<os>` est soit `trixie` (pour Debian Trixie), `bookworm` (pour Debian Bookworm), ou `alpine` (pour la dernière version stable d'Alpine).
11
11
12
12
[Parcourir les tags](https://hub.docker.com/r/dunglas/frankenphp/tags).
13
13
@@ -28,10 +28,13 @@ docker build -t my-php-app .
28
28
docker run -it --rm --name my-running-app my-php-app
29
29
```
30
30
31
+
## Comment ajuster la configuration
32
+
33
+
Pour une meilleure expérience initiale, un [`Caddyfile` par défaut](https://github.com/php/frankenphp/blob/main/caddy/frankenphp/Caddyfile) contenant des variables d'environnement communément utilisées est fourni dans l'image.
34
+
31
35
## Comment installer plus d'extensions PHP
32
36
33
-
Le script [`docker-php-extension-installer`](https://github.com/mlocati/docker-php-extension-installer) est fourni dans l'image de base.
34
-
Il est facile d'ajouter des extensions PHP supplémentaires :
37
+
Le script [`docker-php-extension-installer`](https://github.com/mlocati/docker-php-extension-installer) est fourni dans l'image de base. L'ajout d'extensions PHP supplémentaires se fait de cette manière :
35
38
36
39
```dockerfile
37
40
FROM dunglas/frankenphp
@@ -79,7 +82,7 @@ FROM dunglas/frankenphp AS runner
L'image builder fournie par FrankenPHP contient une version compilée de `libphp`.
85
+
L'image `builder` fournie par FrankenPHP contient une version compilée de `libphp`.
83
86
[Les images builder](https://hub.docker.com/r/dunglas/frankenphp/tags?name=builder) sont fournies pour toutes les versions de FrankenPHP et PHP, à la fois pour Debian et Alpine.
84
87
85
88
> [!TIP]
@@ -156,18 +159,17 @@ RUN \
156
159
useradd ${USER}; \
157
160
# Ajouter la capacité supplémentaire de se lier aux ports 80 et 443
Même lorsqu'il s'exécute en tant qu'utilisateur autre que root, FrankenPHP a besoin de la capacité `CAP_NET_BIND_SERVICE`
168
-
pour que son serveur utilise les ports privilégiés (80 et 443).
170
+
Même lorsqu'il s'exécute en tant qu'utilisateur non-root, FrankenPHP a besoin de la capacité `CAP_NET_BIND_SERVICE` pour lier le serveur web sur les ports privilégiés (80 et 443).
169
171
170
-
Si vous exposez FrankenPHP sur un port non privilégié (à partir de 1024), il est possible de faire fonctionner le serveur web avec un utilisateur qui n'est pas root, et sans avoir besoin d'aucune capacité.
172
+
Si vous exposez FrankenPHP sur un port non privilégié (1024 et au-delà), il est possible d'exécuter le serveur web en tant qu'utilisateur non-root, et sans avoir besoin d'aucune capacité:
171
173
172
174
```dockerfile
173
175
FROM dunglas/frankenphp
@@ -177,16 +179,16 @@ ARG USER=appuser
177
179
RUN \
178
180
# Utiliser "adduser -D ${USER}" pour les distros basées sur Alpine
179
181
useradd ${USER}; \
180
-
# Supprimer la capacité par défaut \
182
+
# Supprimer la capacité par défaut
181
183
setcap -r /usr/local/bin/frankenphp; \
182
-
# Donner un accès en écriture à /data/caddy et /config/caddy \
Ensuite, définissez la variable d'environnement `SERVER_NAME` pour utiliser un port non privilégié.
189
-
Exemple `:8000`
191
+
Exemple : `:8000`
190
192
191
193
## Mises à jour
192
194
@@ -195,9 +197,80 @@ Les images Docker sont construites :
195
197
- lorsqu'une nouvelle version est taguée
196
198
- tous les jours à 4h UTC, si de nouvelles versions des images officielles PHP sont disponibles
197
199
200
+
## Durcir la sécurité des images
201
+
202
+
Pour réduire davantage la surface d'attaque et la taille de vos images Docker FrankenPHP, il est également possible de les construire sur une image [Google distroless](https://github.com/GoogleContainerTools/distroless) ou [Docker hardened](https://www.docker.com/products/hardened-images).
203
+
204
+
> [!WARNING]
205
+
> Ces images de base minimales n'incluent pas de shell ou de gestionnaire de paquets, ce qui rend le débogage plus difficile. Elles sont donc recommandées uniquement pour la production si la sécurité est une priorité.
206
+
207
+
Lors de l'ajout d'extensions PHP supplémentaires, vous aurez besoin d'une étape de build intermédiaire :
208
+
209
+
```dockerfile
210
+
FROM dunglas/frankenphp AS builder
211
+
212
+
# Ajoutez ici des extensions PHP supplémentaires
213
+
RUN install-php-extensions pdo_mysql pdo_pgsql #...
214
+
215
+
# Copiez les bibliothèques partagées de frankenphp et toutes les extensions installées vers un emplacement temporaire
216
+
# Vous pouvez également effectuer cette étape manuellement en analysant la sortie ldd du binaire frankenphp et de chaque fichier .so d'extension
217
+
RUN apt-get update && apt-get install -y libtree && \
# Répertoires de données Caddy — doivent être accessibles en écriture pour l'utilisateur non-root, même sur un système de fichiers racine en lecture seule
Les versions de développement sont disponibles dans le dépôt Docker [`dunglas/frankenphp-dev`](https://hub.docker.com/repository/docker/dunglas/frankenphp-dev). Un nouveau build est déclenché chaque fois qu'un commit est poussé sur la branche principale du dépôt GitHub.
201
274
202
275
Les tags `latest*` pointent vers la tête de la branche `main`.
203
-
Les tags sous la forme `sha-<hash-du-commit-git>` sont également disponibles.
276
+
Les tags sous la forme `sha-<git-commit-hash>` sont également disponibles.
0 commit comments