2017-10-13 4 views
0

Je sais que je peux l'écrire sur le système de fichiers hôte monté qui sera partagé entre les multiples conteneurs de construction. Mais comment puis-je utiliser ce fichier dans un conteneur plugin drone comme docker-plugin?Comment transférer une valeur d'un conteneur de construction à un autre dans drone.io CI pipeline

Ou existe-t-il un autre moyen de transmettre des données arbitraires entre les étapes de construction? Peut-être à travers des variables d'environnement?

C'est drone 0,5

Répondre

3

Il est seulement possible de partager des informations entre construire étapes via le système de fichiers. Les variables d'environnement ne sont pas une option car il n'existe pas de moyen propre de partager les variables d'environnement entre les processus unix frères.

Il est de la responsabilité du plugin de décider comment il veut accepter les paramètres de configuration. Habituellement, les paramètres sont transmis au plugin en tant que variables d'environnement, définies dans le fichier de configuration yaml. Certains plugins, notamment le docker plugin [1], ont la possibilité de lire les paramètres du fichier. Par exemple, le plugin docker lira les tags docker d'un fichier .tags à la racine de votre référentiel, qui peut être généré à la volée.

pipeline: 
    build: 
    image: golang 
    commands: 
     - go build 
     - echo ${DRONE_COMMIT:0:8} > .tags 
    publish: 
    image: plugins/docker 
    repo: octocat/hello-world 

Tous les plugins ne permettent pas de lire les paramètres du fichier. Il appartient à l'auteur du plugin d'inclure cette fonctionnalité. Si le plugin n'a pas cette capacité, ou que ce n'est pas quelque chose que l'auteur du plugin a l'intention de mettre en œuvre, vous pouvez toujours utiliser le fork et ajuster le plugin pour répondre à vos besoins précis.

[1] https://github.com/drone-plugins/drone-docker

+0

Nice !. Ceci est exactement ce que je cherchais –