Не удалось найти папку jenkins_home в Ubuntu после загрузки образа Docker Jenkins

#jenkins #docker #jvm

#дженкинс #docker #jvm

Вопрос:

Я извлек изображение Docker-Jenkins из центрального репозитория Docker и выполнил приведенную ниже команду

 $ docker run -p 8080:8080 -p 50000:50000 Jenkins
  

В середине установки появились строки ниже.

 *************************************************************************`
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
xxxxxxxxxxxxxxxxxxxxxx
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
*************************************************************************`
  

Но в моем /var случае jenkins_home папки нет.

Я получаю следующую ошибку, и я не смог получить доступ к своему Jenkins с помощью localhost:8080

ИНФОРМАЦИЯ: Дженкинс полностью запущен
11 октября 2016 г., 4:31:19 AM Уинстон.Внутренняя
ИНФОРМАЦИЯ о входе регистратора: JVM завершается. Завершение работы Winstone

Когда был сгенерирован пароль администратора, я смог получить доступ к панели управления Jenkins. Но сразу же JVM завершается, и я больше не могу получить доступ к странице Jenkins.

Комментарии:

1. Папка /var/jenkins_home находится в вашем контейнере docker, а не на вашем хосте.

2. Спасибо за ответ. Я новичок в Ubuntu. Можете ли вы помочь мне в сопоставлении контейнера с хостом?

3. Это сделано с -v помощью опции для docker. Если вы хотите сопоставить contailers /var/jenkins_home/ с хостами /var/jenkins_home/ , тогда -v /var/jenkins_home/:/var/jenkins_home/ это должно сработать.

4. touch: невозможно коснуться /var/jenkins_home/copy_reference_file.log‘: Отказано в разрешении, не удается выполнить запись в /var/jenkins_home/copy_reference_file.log. Неправильные разрешения тома? Это ошибка, которую я получаю, когда пытаюсь » -v /var / jenkins_home/:/var /jenkins_home / »

Ответ №1:

После запуска jenkins у вас есть 2 варианта:

 docker run -p 8080:8080 -d -p 50000:50000 jenkins
  

( -d Вариант — запустить контейнер в фоновом режиме)
Вы можете зайти внутрь контейнера и проверить начальный пароль администратора:
проверьте запущенные контейнеры

 [root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                              NAMES
cc73eb6d6f75        jenkins             "/bin/tini -- /usr/lo"   32 seconds ago      Up 30 seconds       0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp   ecstatic_leakey
  

Зайдите внутрь контейнера

 docker exec -it cc73eb6d6f75 bash
  

И проверьте содержимое adminpasswd

 jenkins@cc73eb6d6f75:/$ cat /var/jenkins_home/secrets/initialAdminPassword
1c8be33b31904cacb5xxx
  

Или вы создаете свой собственный именованный том docker:

 [root@localhost ~]# docker volume create --name jenkins-volume
jenkins-volume
  

Этот том находится на вашем хосте в /var/lib/docker/volumes/jenkins-volume .
Вы можете запустить свой jenkins и подключить его к тому:

 docker run -p 8080:8080 -d -p 50000:50000 -v jenkins-volume:/var/jenkins_home jenkins
  

Все данные из /var/jenkins_volume вашего контейнера будут смонтированы внутри вашего именованного тома. путь к хосту: /var/lib/docker/volumes/jenkins-volume/_data

Итак, проверьте мой хост:

 [root@localhost ~]# ls /var/lib/docker/volumes/jenkins-volume/_data
config.xml               hudson.model.UpdateCenter.xml   init.groovy.d                                jobs              nodes          secret.key                updates      war
copy_reference_file.log  hudson.plugins.git.GitTool.xml  jenkins.install.InstallUtil.lastExecVersion  logs              plugins        secret.key.not-so-secret  userContent  workspace
credentials.xml          identity.key.enc                jenkins.install.UpgradeWizard.state          nodeMonitors.xml  queue.xml.bak  secrets                   users
  

Ответ №2:

Если вы установили его с помощью официальных инструкций Jenkins Docker jenkins-data , том Docker автоматически создается в команде run. Итак, чтобы получить пароль:

 sudo cat /var/lib/docker/volumes/jenkins-data/_data/secrets/initialAdminPassword
  

Ответ №3:

Если вы хотите смонтировать каталог хоста, jenkins_home вам нужно предоставить пользователю Jenkins (UID 1000) право собственности на этот каталог.


JENKINS_HOME=/home/$(whoami)/jenkins_home
mkdir $JENKINS_HOME
chown -R 1000 $JENKINS_HOME

Запустите контейнер Jenkins:


docker run -d --name jenkins
-p 8080:8080 -p 50000:50000
-v /home/$(whoami)/jenkins_home:/var/jenkins_home
jenkins

Здесь вы можете найти подробное пошаговое руководство о том, как запустить Jenkins CI из контейнера.