Env değişkenlerini jenkins işinden docker run komutuna geçirin

0

Soru

Env değişkenlerinin nasıl aktarılacağı hakkında başka bir soru. Çözmeye çalıştığım görev: Git repo'dan kodu kontrol eden, docker build ve docker run komutlarını çalıştıran jenkins işim var. Env değişkenlerini bu çalıştırma komutuna iletmem gerekiyor. Tercihen env dosyasını kullanarak, ancak tek değişkenler olarak tamam olacaktır. İşte benim jenkins işim:

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}

Değişkenleri çalıştır komut seçenekleri olarak geçirmeyi denedim, değişkenleri depolamayı denedim env_settings.env dosyalayın ve sonra iletin --env-file seçenek. Her iki varyant da işe yaramadı. İşe yarayan tek şey arg'leri dockerfile'da bildirmek, ardından env var'ları dockerfile'da bildirmek ve bunları build komutunda iletmekti, ancak bu varyant benim için uygun değil. Belki birisi aynı sorunu yaşadı ve nasıl çözeceğini biliyor mu?

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

En iyi cevabı

0

Jenkins için resmi Jenkins dokümanlarında gerçekten güzel dokümanlar var.

Örnek:

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

@rudolfninja'nın sorusuna verdiği yoruma bakın: "sıradan bir iş, jenkins boru hattı değil".
Gerold Broser

Diğer dillerde

Bu sayfa diğer dillerde

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