Jeszcze jedno pytanie o tym, jak przekazywać zmienne env. Zadanie, które staram się rozwiązać: mam zadanie Jenkins, który sprawdza kod z repozytorium git, uruchamia złożenie nudziarz z niego, co i polecenia uruchomienia nudziarz z niego, co. Muszę przekazać zmienne env w tej polecenie uruchomienia. Najlepiej za pomocą pliku env, ale jako poszczególnych zmiennych będzie dobrze. Oto moja praca Jenkins:
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}
Próbowałem przekazać zmienne jako parametry polecenia uruchomienia, próbowałem zapisać zmienne w env_settings.env
plik, a następnie przekazać go z --env-file
wariant. Oba warianty nie zadziałały.
Jedyne, co się udało, to ogłosić args w pliku dockerfile, a następnie ogłosić env vars w pliku dockerfile i przekazać je w zespole złożenia, ale ta opcja mi nie pasuje. Może ktoś miał taki sam problem i wie jak go rozwiązać?