2017-10-06 6 views
0

J'ai la tâche de configuration Docker et j'ai besoin d'exécuter dans le conteneur docker un script bash qui utilise des variables Bamboo.Comment passer beaucoup de variables bambou à un conteneur docker?

Existe-t-il un moyen de passer toutes les variables Bamboo au conteneur de docker? J'ai beaucoup de plans Bamboo avec pas mal de variables différentes, donc mettre toutes les variables dans les variables d'environnement du conteneur n'est pas une option.

Bien sûr, je peux les sauvegarder dans un fichier en une tâche et analyser les variables à partir du fichier dans la tâche docker, mais j'espérais trouver une solution plus facile.

Merci!

+0

si ma réponse résout votre problème, s'il vous plaît accepter. Alors les futurs visiteurs peuvent le reconnaître. – lifeisfoo

Répondre

0

Vous pouvez utiliser le env_file option using compose:

web: 
    env_file: 
    - your-variables.env 

ou utiliser docker run --env-file=your-variables.env ....

Le fichier env est un simple fichier texte clé de la valeur:

0

Quelle version de bambou utilisez-vous?

Il y a un problème avec des variables de bambou est des conteneurs docker dans certaines versions de bambou, mais a été fixé en bambou 6.1.0:

Unable to use variables in Container name field in Run docker task

Solution:

  • Créer une Tâche de script qui s'exécute avant la tâche Docker.
  • Exécuter des commandes comme

    echo "export sourcepath=$ini_source_path" > scriptname.sh 
    chmod +x scriptname.sh 
    

Le Groupe Docker sera la carte $ {} bamboo.working.directory au volume de données Docker \. Par conséquent, le script scriptname.sh qui vient d'être créé est disponible dans le conteneur Docker. Le script sera exécuté et définira correctement la variable.

Plus d'info dans ce post: How to send bamboo variables from Bamboo script to docker container?

0

Je pense que la seule façon est ce que vous mentionnez déjà - vider les variables d'environnement à déposer dans la tâche dédiée plus tôt dans le flux. Dites, vous le faites comme ceci:

#!/bin/bash 
env | grep ^bamboo_ > my_env_file 

Notez la regex stricte empêchant les variables telles que le dumping PATH.

Puis dans la tâche de docker, dans « arguments supplémentaires » ajouter le

suivant
--env-file=my_env_file