Ce que ton image doit respecter
Quatre règles : écouter sur$PORT, écouter sur 0.0.0.0, n’écrire que dans
/home/container, et sortir proprement sur SIGTERM. La racine du conteneur est en
lecture seule et le processus ne tourne pas en root — deux détails qui expliquent la
plupart des démarrages ratés.
Écrire un Dockerfile pour Arkya
Les contraintes en détail, un Dockerfile complet, et les pannes courantes avec leur cause.
Premier déploiement
L’emplacement peut aussi se réserver depuis l’espace client : sur le canevas d’un
projet, Ajouter un service puis Image Docker. Dans ce cas,
ark init --app <nom> reprend l’application existante au lieu d’en créer une.arkya.json
Les variables
Deux endroits, deux usages. Dans le manifeste, ce qui fait partie du dépôt et se relit dans une revue de code :arkya.json
ark deploy les pose à chaque déploiement.
Par la commande, ce qui ne doit pas être dans le dépôt :
Brancher une base de données
mon-api la joint par son alias.
Regarder ce que ça donne
Revenir en arrière
Les versions poussées restent disponibles. Pas besoin de reconstruire :Construire pour la bonne architecture
ark build demande à Arkya sur quelle architecture tourne le nœud et construit pour
elle. Sur un Mac Apple Silicon, ça veut dire une construction croisée vers
linux/amd64 — plus lente, mais juste.
Pour forcer :
Ce qui coince le plus souvent
Le service tourne mais ne répond pas
Le service tourne mais ne répond pas
L’application n’écoute pas sur
$PORT, ou elle écoute sur 127.0.0.1 au lieu de
0.0.0.0. Les deux donnent le même symptôme.« EROFS » ou « permission denied » au démarrage
« EROFS » ou « permission denied » au démarrage
La racine est en lecture seule et le conteneur tourne en uid 988. Voir
Écrire un Dockerfile pour Arkya.
« exec format error » dans la console
« exec format error » dans la console
L’image a été construite pour une autre architecture. Reconstruis sans
--platform
et laisse ark build choisir.Les fichiers écrits disparaissent au déploiement
Les fichiers écrits disparaissent au déploiement
Ils ne sont pas dans
/home/container. Voir
Disque, fichiers et persistance.« Ton jeton a été refusé » pendant le push
« Ton jeton a été refusé » pendant le push
ark login connecte aussi Docker au registre. Si tu as changé de jeton depuis,
relance-le.