Некоторые установленные пакеты недоступны во время выполнения контейнера - PullRequest
0 голосов
/ 23 февраля 2019

У меня возникают некоторые трудности со следующим Dockerfile: https://github.com/IdanAdar/test-docker/tree/master

Когда я запускаю образ локально, выполняются следующие шаги:

  1. docker run --privileged --dns 9.0.128.50 --dns 9.0.130.50 -d -P --name slave alpine-agent:0.0.1
  2. docker ps и скопируйте номер порта
  3. ssh -p <port number> jenkins@localhost
  4. пароль: jenkinspass

Я могу запустить почти все установленные инструменты, со следующими проблемами:

  1. sonar-scanner не найден
  2. * * PATH не включает ни одной из PATH модификаций из файла Dockerfile

КогдаЯ запускаю образ в Jenkins как агент, почти все установленные инструменты работают, со следующими проблемами:

  1. sonar-scanner получает sonar-scanner: Permission denied
  2. ibmcloud не найдено(но доступно в usr/local/ibmcloud)
  3. В PATH не включены какие-либо модификации PATH из блоков Dockerfile
  4. sh в Jenkins, для таких команд, как:
array=(some text some text ...)

С:

syntax error: unexpected "("

Мне трудно понять, почему эти проблемы происходят и какрешить их.

1 Ответ

0 голосов
/ 23 февраля 2019

Вы настроили переменную PATH с командой ENV для пользователя, которая используется для запуска контейнера - это, вероятно, root, а не jenkins.Ваш Dockerfile содержит:

COPY skel/ /home/jenkins

, поэтому используйте .bashrc в skel/ для настройки PATH для jenkins пользователя (это будет /home/jenkins/.bashrc на изображении).

Permission denied проблема: проверьте, есть ли у двоичного файла разрешения на выполнение для jenkins пользователя.

syntax error: unexpected "(" проблема: /bin/sh в docker:stable-dind - это busybox, который не понимает этот синтаксис (см.ls -l /bin/sh).Установите bash в Dockerfile (apk add bash) и «укажите» от /bin/sh до /bin/bash.Например:

mv /bin/sh /bin/sh.bak
ln -s /bin/bash /bin/sh
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...