Installer avec Docker
Sur cette page
L'agent est publié sous forme d'image Docker onagreio/agent. Il n'a besoin que de son jeton et d'un accès sortant, rien d'autre : aucun volume, aucun port exposé.
x64 uniquement
L'image est construite pour linux/amd64. Sur les hôtes ARM64, utilisez l'installateur automatique ou le binaire Linux.
Lancer l'agent#
docker run -d \
--name onagre-agent \
--restart=always \
--ulimit nofile=65536:65536 \
-e "TOKEN=<YOUR_TOKEN>" \
onagreio/agent| Option | Pourquoi |
|---|---|
--restart=always |
L'agent redémarre avec Docker et après toute défaillance. |
--ulimit nofile=65536:65536 |
Permet à l'agent de garder de nombreux contrôles ouverts simultanément. |
-e "TOKEN=…" |
Le jeton de l'agent. Préférez --env-file avec un fichier lisible par vous seul, pour que le jeton ne figure pas dans l'historique de votre shell. |
Le conteneur atteint ce que le réseau de l'hôte atteint. Pour contrôler des services qui écoutent sur l'hôte lui-même (localhost), ajoutez --network host.
Les images sont étiquetées avec la version de l'agent (par exemple onagreio/agent:2.8.4.112) et latest. Fixez une version sur les hôtes de production, pour que les mises à jour restent délibérées.
Docker Compose#
services:
onagre-agent:
image: onagreio/agent:latest
restart: always
env_file: ./onagre-agent.env # TOKEN=<YOUR_TOKEN>
ulimits:
nofile: { soft: 65536, hard: 65536 }Les logs vont sur la sortie du conteneur : docker logs onagre-agent.
Plusieurs agents sur un hôte#
L'installateur Linux fait tourner un agent par machine. Pour faire tourner plusieurs agents sur le même hôte — par exemple un par réseau ou par environnement — lancez un conteneur par agent, chacun avec son propre jeton (créez un agent par conteneur dans Onagre) :
services:
agent-prod:
image: onagreio/agent:2.9.0.0
restart: always
env_file: ./agent-prod.env # TOKEN=<JETON_DE_L_AGENT_PROD>
agent-staging:
image: onagreio/agent:2.9.0.0
restart: always
env_file: ./agent-staging.env # TOKEN=<JETON_DE_L_AGENT_STAGING>Ne donnez jamais le même jeton à deux conteneurs : le second est refusé (Another agent is already connected with this token).
Contrôles de santé et plateformes de conteneurs#
L'agent sert /health, /ready et /status sur le port 27520 — voir Endpoints de santé. Par défaut, ils n'écoutent qu'à l'intérieur du conteneur (127.0.0.1) : un HEALTHCHECK Docker exécuté dans le conteneur fonctionne tel quel, mais les sondes venant de l'extérieur du conteneur exigent HTTP_API_BIND=any.
Sur Kubernetes ou une plateforme de conteneurs managée (Scaleway Serverless Containers, Cloud Run, Azure Container Apps…) :
- définissez
HTTP_API_BIND=any, puis pointez la sonde liveness vers/healthet la sonde readiness vers/ready; - la variable
PORTde la plateforme, lorsqu'elle en définit une, est utilisée par l'agent ; - gardez exactement une instance en marche : pas de mise à l'échelle à zéro — l'agent maintient une connexion permanente avec le Hub — ni de seconde réplique — une seconde instance avec le même jeton est refusée (
Another agent is already connected with this token). Besoin de deux agents ? Créez deux agents dans Onagre ; - aucune route entrante n'est nécessaire : les endpoints ne servent qu'aux sondes de la plateforme.
Réglages#
| Variable | Défaut | Rôle |
|---|---|---|
TOKEN |
(obligatoire) | Le jeton de l'agent. |
PORT |
27520 |
Port des endpoints de santé (le PORT propre d'une plateforme est prioritaire). |
HTTP_API_BIND |
127.0.0.1 |
any pour accepter les sondes venant de l'extérieur du conteneur. |
HTTP_API |
activé | 0 pour désactiver les endpoints de santé. |
LOG_FORMAT |
texte | json pour écrire les logs en lignes JSON compactes, pour les plateformes qui indexent le JSON. |
Tous les réglages : Configuration de l'agent.
Gérer le conteneur#
| Tâche | Commande |
|---|---|
| Logs | docker logs -f onagre-agent |
| Redémarrer | docker restart onagre-agent |
| Mettre à jour | docker pull onagreio/agent:latest, puis supprimez le conteneur et relancez-le |
| Supprimer | docker rm -f onagre-agent |