Passer des variables d'environnement pour le panneau de commande exécuter du travail de jenkins

0

La question

Encore une question sur comment passer des variables d'environnement. La tâche que je suis en train de le résoudre: j'ai jenkins emploi vérification de code de repo git, exécutez le panneau de construire et de docker exécuter des commandes. J'ai besoin de passer des variables d'environnement pour exécuter cette commande. En utilisant de préférence fichier de configuration, mais comme de simples variables seront ok. Voici mon jenkins travail:

cp WL/${stageid}/env_settings.env ./env_settings.env
ls

docker build \
   -t customer_front${stagePrefix} . 
docker stop customer_front${stagePrefix} || true && docker rm customer_front${stagePrefix} || true
#source env_settings.env
docker run \
      -d --restart unless-stopped \
      -e CLIENT_URL='https://test.customer.app' \
      -e SITE_NAME='My best site' \
      --name customer_front${stagePrefix} \
      -p ${externalPort}:3000 \
      -e DEFAULT_LOCALE=$DEFAULT_LOCALE \
      -e COUNTRY=$COUNTRY \
      -e CURRENCY=$CURRENCY \
      customer_front${stagePrefix}

J'ai essayé de passer des variables que l'exécution de la commande options, j'ai essayé de stocker des variables dans env_settings.env fichier et de le passer avec --env-file option. Les deux variantes ne fonctionne pas. La seule chose qui a fonctionné a été déclarer args dans dockerfile, puis de déclarer env vars dans dockerfile et de les transmettre à construire de commande, mais cette variante n'est pas adapté pour moi. Peut être que quelqu'un a eu le même problème et sait comment le résoudre?

docker jenkins
2021-11-23 20:29:46
1

La meilleure réponse

0

Pour Jenkins, il y a quelques très belles docs à l' officiel Jenkins docs.

Exemple:

stage("some:job") {
  steps {
     script {
        def args = "-e AWS_SECRET_ACCESS_KEY=x"
        docker.image('localstack/localstack:0.12.0').withRun("${args}") { c ->
          sh "echo hi"

        }
     }
  }
}
2021-11-23 23:03:21

Voir @rudolfninja commentaire à sa question: "travail ordinaire, pas un jenkins pipeline".
Gerold Broser

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................