Size: a a a

2020 August 03

PN

Pavel Nov in jenkins_ru
Сайхан
@pauelstv  ```
RUN echo "${SSH_PRIVATE_KEY}" > /root/.ssh/id_rsa && chmod 0600 /root/.ssh/id_rsa
``` лучше cat вместо echo
это уже инструкции докерфайла, можно конечно переделать, но большокого смысла нет, ведь в баше сборка работает корректно, вопрос пока не в этом...
источник

I

Ilgiz in jenkins_ru
Pavel Nov
это уже инструкции докерфайла, можно конечно переделать, но большокого смысла нет, ведь в баше сборка работает корректно, вопрос пока не в этом...
попробуй просто --build-arg \$SSH_PRIVATE_KEY
источник

DS

Dmitry Sergeev in jenkins_ru
Pavel Nov
попробовал так: не работает, хотя в логе показывает звездоки```        stage('Build docker image') {
           steps {
               sh '''
                   echo ${SSH_PRIVATE_KEY}
                   export SSH_PRIVATE_KEY=${SSH_PRIVATE_KEY}
                   docker build --rm --no-cache --build-arg SSH_PRIVATE_KEY -f /gits/trigger-image/master/Dockerfile -t local/target:latest .
                   '''
````
А docker разве умеет брать ARG из environment. Сделай просто --build-arg SSH_PRIVATE_KEY=${SSH_PRIVATE_KEY}
источник

DS

Dmitry Sergeev in jenkins_ru
А хотя дока пишет, что умеет
источник

DS

Dmitry Sergeev in jenkins_ru
Ilgiz
попробуй просто --build-arg \$SSH_PRIVATE_KEY
туда надо имя передать, а не значение
источник

DS

Dmitry Sergeev in jenkins_ru
источник

PN

Pavel Nov in jenkins_ru
Ilgiz
попробуй просто --build-arg \$SSH_PRIVATE_KEY
тогда докербуилд отправит в процесс сборки содержимое переменной (строку ключа), а докерфайл ожидает получить имяпеременной, которая в свою очередь должна существовать в том процессе баша в котором запущен докербуилд. Но попробовал все равно. Результат не изменился
load pubkey "/root/.ssh/id_rsa": invalid format
источник

I

Ilgiz in jenkins_ru
А, точно
источник

DS

Dmitry Sergeev in jenkins_ru
Pavel Nov
тогда докербуилд отправит в процесс сборки содержимое переменной (строку ключа), а докерфайл ожидает получить имяпеременной, которая в свою очередь должна существовать в том процессе баша в котором запущен докербуилд. Но попробовал все равно. Результат не изменился
load pubkey "/root/.ssh/id_rsa": invalid format
Ты уверен что вот это не работает?
docker build --rm --no-cache --build-arg SSH_PRIVATE_KEY -f /gits/trigger-image/master/Dockerfile -t local/target:latest .
источник

PN

Pavel Nov in jenkins_ru
Dmitry Sergeev
Ты уверен что вот это не работает?
docker build --rm --no-cache --build-arg SSH_PRIVATE_KEY -f /gits/trigger-image/master/Dockerfile -t local/target:latest .
Абсолютно, я отлаживал сборку в баше. Оно и сейчас работает в баше. Я делаю экполркрт ключа в переменную и запускаю этой командой сборку - все ок.
источник

DS

Dmitry Sergeev in jenkins_ru
Pavel Nov
Абсолютно, я отлаживал сборку в баше. Оно и сейчас работает в баше. Я делаю экполркрт ключа в переменную и запускаю этой командой сборку - все ок.
я про jenkins.
Проверь переменную среды SSH_PRIVATE_KEY перед вызовом docker build
источник

PN

Pavel Nov in jenkins_ru
Dmitry Sergeev
я про jenkins.
Проверь переменную среды SSH_PRIVATE_KEY перед вызовом docker build
а как? Я не настоящий сварщик ( я только учу дженкинс
источник

DS

Dmitry Sergeev in jenkins_ru
Pavel Nov
попробовал так: не работает, хотя в логе показывает звездоки```        stage('Build docker image') {
           steps {
               sh '''
                   echo ${SSH_PRIVATE_KEY}
                   export SSH_PRIVATE_KEY=${SSH_PRIVATE_KEY}
                   docker build --rm --no-cache --build-arg SSH_PRIVATE_KEY -f /gits/trigger-image/master/Dockerfile -t local/target:latest .
                   '''
````
а что в логах сборки пишет, как это выглядет? Проверь в Dockerfile корректно ли передается этот аргумент. Выведи его или запиши в файл и прочитай
источник

С

Сайхан in jenkins_ru
ls -la $SSH_PRIVATE_KEY
источник

PN

Pavel Nov in jenkins_ru
Dmitry Sergeev
а что в логах сборки пишет, как это выглядет? Проверь в Dockerfile корректно ли передается этот аргумент. Выведи его или запиши в файл и прочитай
17:11:20  + export SSH_PRIVATE_KEY=****
17:11:20  + SSH_PRIVATE_KEY=****
17:11:20  + docker build --rm --no-cache --build-arg **** -f /****s/trigger-image/master/Dockerfile -t local/trigger3:latest .
17:11:20  Sending build context to Docker daemon  3.631kB

потом запускается выхлоп докербуилда:
17:11:23  Step 3/22 : ARG SSH_PRIVATE_KEY
17:11:23   ---> Running in af99a86bc3bf
17:11:23  Removing intermediate container af99a86bc3bf
17:11:23   ---> 1a7f031ea489
17:11:23  Step 4/22 : RUN mkdir /root/.ssh/
17:11:23   ---> Running in e547aa9ec009
17:11:23  Removing intermediate container e547aa9ec009
17:11:23   ---> b37ec8bb3bed
17:11:23  Step 5/22 : RUN echo "${SSH_PRIVATE_KEY}" > /root/.ssh/id_rsa && chmod 0600 /root/.ssh/id_rsa
17:11:23   ---> Running in 6e15bc139ddd
поскипано

17:11:27  load pubkey "/root/.ssh/id_rsa": invalid format```
источник

DS

Dmitry Sergeev in jenkins_ru
Pavel Nov
17:11:20  + export SSH_PRIVATE_KEY=****
17:11:20  + SSH_PRIVATE_KEY=****
17:11:20  + docker build --rm --no-cache --build-arg **** -f /****s/trigger-image/master/Dockerfile -t local/trigger3:latest .
17:11:20  Sending build context to Docker daemon  3.631kB

потом запускается выхлоп докербуилда:
17:11:23  Step 3/22 : ARG SSH_PRIVATE_KEY
17:11:23   ---> Running in af99a86bc3bf
17:11:23  Removing intermediate container af99a86bc3bf
17:11:23   ---> 1a7f031ea489
17:11:23  Step 4/22 : RUN mkdir /root/.ssh/
17:11:23   ---> Running in e547aa9ec009
17:11:23  Removing intermediate container e547aa9ec009
17:11:23   ---> b37ec8bb3bed
17:11:23  Step 5/22 : RUN echo "${SSH_PRIVATE_KEY}" > /root/.ssh/id_rsa && chmod 0600 /root/.ssh/id_rsa
17:11:23   ---> Running in 6e15bc139ddd
поскипано

17:11:27  load pubkey "/root/.ssh/id_rsa": invalid format```
-build-arg **** - вот это означает, что ты туда значение подставил, а не имя переменной
источник

I

Ilgiz in jenkins_ru
убери там тройные кавычки, оставь одинарные, попробуй так
источник

DS

Dmitry Sergeev in jenkins_ru
Pavel Nov
17:11:20  + export SSH_PRIVATE_KEY=****
17:11:20  + SSH_PRIVATE_KEY=****
17:11:20  + docker build --rm --no-cache --build-arg **** -f /****s/trigger-image/master/Dockerfile -t local/trigger3:latest .
17:11:20  Sending build context to Docker daemon  3.631kB

потом запускается выхлоп докербуилда:
17:11:23  Step 3/22 : ARG SSH_PRIVATE_KEY
17:11:23   ---> Running in af99a86bc3bf
17:11:23  Removing intermediate container af99a86bc3bf
17:11:23   ---> 1a7f031ea489
17:11:23  Step 4/22 : RUN mkdir /root/.ssh/
17:11:23   ---> Running in e547aa9ec009
17:11:23  Removing intermediate container e547aa9ec009
17:11:23   ---> b37ec8bb3bed
17:11:23  Step 5/22 : RUN echo "${SSH_PRIVATE_KEY}" > /root/.ssh/id_rsa && chmod 0600 /root/.ssh/id_rsa
17:11:23   ---> Running in 6e15bc139ddd
поскипано

17:11:27  load pubkey "/root/.ssh/id_rsa": invalid format```
ты проверял, что констуркция SSH_PRIVATE_KEY = credentials('git-ssh-key') тебе правильный ключ возвращает?
источник

PN

Pavel Nov in jenkins_ru
Dmitry Sergeev
ты проверял, что констуркция SSH_PRIVATE_KEY = credentials('git-ssh-key') тебе правильный ключ возвращает?
17:25:36  + echo ****
17:25:36  ****
17:25:36  + export SSH_PRIVATE_KEY = ****
источник

DS

Dmitry Sergeev in jenkins_ru
Pavel Nov
17:25:36  + echo ****
17:25:36  ****
17:25:36  + export SSH_PRIVATE_KEY = ****
Странно, неужели он должен так делать. А за тести вот это
environment {
   SSH_PRIVATE_KEY1 = credentials('git-ssh-key')
steps {
   sh '''
                 export SSH_PRIVATE_KEY=${SSH_PRIVATE_KEY1}
       docker build --rm --no-cache --build-arg SSH_PRIVATE_KEY -f /path-to-/Dockerfile -t local/target:latest .
       '''
источник