Poser le bit exécutable du point d'entrée dans l'image
`COPY` recopie le mode du fichier source, et ce mode se perd hors d'un clone git : archive envoyée à Portainer, contexte reconstitué, système de fichiers qui ne porte pas la permission. La panne que cela produit ne ressemble à rien. La forme exec de `CMD` échoue avant le premier octet de sortie, si bien que le conteneur s'arrête sans une seule ligne de journal — et l'on cherche un défaut applicatif là où il n'y a jamais eu de processus. Mesuré : sans le bit, « Permission denied » et aucune sortie du script ; avec, le script s'exécute. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cr9dkEHwbDgkWPnyGj1Rjv
This commit is contained in:
1 file changed
+11
+11
@@ -54,6 +54,17 @@ COPY --from=build --chown=nextjs:nodejs /app/public ./public
|
|||||||
COPY --chown=nextjs:nodejs docker/entrypoint.sh ./docker/entrypoint.sh
|
COPY --chown=nextjs:nodejs docker/entrypoint.sh ./docker/entrypoint.sh
|
||||||
COPY --chown=nextjs:nodejs docker/bootstrap-role.mjs ./docker/bootstrap-role.mjs
|
COPY --chown=nextjs:nodejs docker/bootstrap-role.mjs ./docker/bootstrap-role.mjs
|
||||||
|
|
||||||
|
# Le bit exécutable est posé **dans l'image**, sans dépendre de celui du fichier
|
||||||
|
# source. `COPY` recopie le mode d'origine, et ce mode se perd hors d'un clone
|
||||||
|
# git : archive envoyée à Portainer, contexte reconstitué, système de fichiers
|
||||||
|
# qui ne porte pas la permission.
|
||||||
|
#
|
||||||
|
# La panne que cela produit ne ressemble à rien : la forme exec de `CMD` échoue
|
||||||
|
# **avant** le premier octet de sortie, si bien que le conteneur s'arrête sans
|
||||||
|
# une ligne de journal. On cherche alors un défaut applicatif là où il n'y a
|
||||||
|
# jamais eu de processus.
|
||||||
|
RUN chmod +x ./docker/entrypoint.sh
|
||||||
|
|
||||||
# Créé dans l'image, et non laissé au montage : un volume nommé hérite du
|
# Créé dans l'image, et non laissé au montage : un volume nommé hérite du
|
||||||
# propriétaire du répertoire qu'il recouvre, et sans cela l'application —
|
# propriétaire du répertoire qu'il recouvre, et sans cela l'application —
|
||||||
# qui ne tourne pas en root — ne pourrait pas y écrire.
|
# qui ne tourne pas en root — ne pourrait pas y écrire.
|
||||||
|
|||||||
Reference in new issue
Block a user