Une application conteneurisée (ACS) part de ton dépôt : tu construis une image, tu la pousses au registre Arkya, Arkya la met en service.

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.
La commande demande le nom, le nœud et le projet, crée l’application chez Arkya, puis écrit le manifeste :
arkya.json
Le nom de version est le commit courant. Chaque déploiement en crée un nouveau, et les anciens restent disponibles.

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 :
Ne mets jamais un secret dans arkya.json : il partirait dans Git. Les secrets passent par ark env set, ou par un fichier .env ignoré et poussé avec ark env push.

Brancher une base de données

La base n’est plus joignable depuis Internet, mais 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 :
C’est la manœuvre à connaître par cœur : trente secondes, et tu es revenu à la version d’avant.

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

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.
La racine est en lecture seule et le conteneur tourne en uid 988. Voir Écrire un Dockerfile pour Arkya.
L’image a été construite pour une autre architecture. Reconstruis sans --platform et laisse ark build choisir.
Ils ne sont pas dans /home/container. Voir Disque, fichiers et persistance.
ark login connecte aussi Docker au registre. Si tu as changé de jeton depuis, relance-le.