#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 из контейнера.