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.
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/
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 № 1Jak 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
.