Próbuję zaadaptować kompilację dockera dla jenkins. Śledzę nasz plik do tworzenia dokerów i tworzę plik Jenkinsa, który tworzy każdy kontener i łączy je ze sobą. Problem, na który napotykam, polega na tym, że pliki kompilacji doków deklarują kontekst, w którym nie ma pliku Docker. O ile mi wiadomo, jenkins ustawi kontekst w miejscu, w którym znajduje się plik Dockerfile, który umieszcza pliki do skopiowania w innej względnej lokalizacji, w zależności od tego, czy budowany jest plik jenkinsfile czy plik dokowanego.Jak ustawić niestandardowy kontekst dla docker.build w jenkinsfile
Struktura folderów jest:
workspace
|-docker
|-db
|-Dockerfile
|-entrypoint.sh
ten sposób Dockerfile deklaruje polecenie kopiowania dla danego pliku
COPY docker/db/entrypoint.sh/
ten sposób mój jenkinsfile buduje plik. Które według mojej wiedzy stawia kontekst w tym katalogu
docker.build("db", "${WORKSPACE}/docker/db")
plik doker-komponować deklaruje, że lubi:
db:
build:
context: .
dockerfile: docker/db/Dockerfile
co stawia kontekst u podstaw projektu.
Czy jest jakiś sposób, aby powiedzieć plikowi jenkinsfile, aby używał tego samego kontekstu, co plik do tworzenia dokowanego, aby instrukcja KOPIOWANIA Dockerfile mogła pozostać niezmieniona i była ważna zarówno dla Jenkins, jak i dla Docker-komponować? Jeśli to nie jest możliwe, czy ktoś wie o jakichkolwiek alternatywnych rozwiązaniach?
Jestem jedynym, który myśli, że integracja dokera w Jenkins jest do końca ssa? Mam wersję 1.14 wtyczki potoku docker i wygląda na to, że drugi argument został już usunięty :-( – schneida
@schneida W tym momencie używam wersji 1.13, a format w tej odpowiedzi nadal działa dla mnie. zmienia się na 1.13, aby sprawdzić, czy to robi różnicę, w przeciwnym razie ten format również działał dla mnie 'db -f docker/db/Dockerfile', który łączy argumenty i opuszcza kontekst –