/ / Instalacja wtyczki Jenkins (mercurial) w programach Docker w folderze wtyczek, ale nie w samym Jenkinsie - wtyczki, jenkins, docker, jenkins-plugins, dockerfile

Instalowanie wtyczki Jenkins (mercurial) w Docker pokazuje w folderze wtyczek, ale nie w samym Jenkinsie - wtyczkach, jenkinsach, docker, jenkins-plugins, dockerfile

Problem: Wydaje mi się, że nie udało mi się pomyślnie zainstalować wtyczki mercurial do jenkins przy użyciu kombinacji Dockerfile i plugins.txt.

Co zrobiłem do tej pory:

Mam plik Docker, który ładuje Jenkinsa. Ma on następujące wiersze:

FROM jenkins:1.642.1
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt

Moja wtyczka.txt ma tę linię:

mercurial:1.54

Kiedy buduję obraz i uruchamiam kontener,wszystko wydaje się działać, nie ma błędów ani skarg. Ale wtyczka Mercurial nie jest oznaczona jako zainstalowana, gdy idę do Zarządzaj wtyczkami, a jeśli spróbuję stworzyć kompilację, Mercurial nie jest opcją w Zarządzaniu kodem źródłowym.

Menedżer wtyczek Jenkins

Opcje kontroli źródła w Jenkins

Próbowałem iść do:

<jenkins ip address>:8080/reload

Podobnie jak opcja „Przeładuj konfigurację z dysku” w Manage Jenkins. Mercurial nadal nie jest widocznie instalowany po żadnej z nich.

Zrobiłem to także w linii poleceń:

docker exec -i -t container bash
ls /var/jenkins_home/plugins/

Wyjście z ls wtyczek

I w tym momencie jestem całkowicie zdezorientowany, ponieważtam na liście są mercurial, mercurial.jpi i mercurial.jpi.pinned. Czy ktoś ma jakieś pomysły na ten temat? Chciałbym mieć Mercurial zainstalowany na Jenkins, gdy tylko zostanie załadowany z pliku Docker bez konieczności zrób to ręcznie ...

Próbowałem również zrobić to za pomocą git-changelog, aby sprawdzić, czy inna wtyczka będzie działać lepiej i będzie miała ten sam rezultat.

Odpowiedzi:

2 dla odpowiedzi № 1

Jak widać na stronie Strona wiki wtyczki Mercurial, wtyczka ma obecnie cztery obowiązkowe zależności i jedną opcjonalną:

  • kwalifikacje
  • projekt macierzowy
  • wiele-scms (opcjonalnie)
  • ssh-credentials
  • scm-api

Mechanizm instalacji wtyczek, którego używasz z obrazem Jenkins Docker, nie instaluje automatycznie dla Ciebie zależnych wtyczek, jak wspomniano w dokumentacji dla jenkins obraz:

Wszystkie wtyczki muszą być wymienione, ponieważ nie ma rozwiązania zależności przechodnich.

Dlatego musisz dodatkowo wymienić te wtyczki i dowolne z nich ich zależności przechodnie w twoim plugins.txt plik.

W tej chwili najprostszym sposobem uzyskania pełnej listy byłoby uruchomienie kontenera (potencjalnie bez plugins.txt), a następnie zainstaluj wtyczkę Mercurial za pomocą Menedżera wtyczek, który zostanie zainstalowany wraz ze wszystkimi jego zależnościami. Następnie możesz zobaczyć listę wymaganych wtyczek $JENKINS_HOME/plugins.