[Megoldva]Docker hiba Jenkins userrer (standard_init_linux.go:185: exec user process caused "no such file or directory" )

 ( GergA84 | 2018. május 16., szerda - 17:10 )

Sziaszok,

Szeretném Maven buildet futtatni docker konténerben. Mindent előkészítettem és a saját useremmel gyönyörűen le is fut az alábbi parancs.
docker run -v /etc/hosts:/etc/hosts -v "$PWD":/usr/src/mymaven
-v /mnt/storage/jenkins/settings.docker.xml:/mnt/storage/jenkins
/settings.docker.xml -w /usr/src/mymaven myimagemvn /usr/src/mymaven
/deployhelper.sh

A deployhelper.sh tartalmazza a maven build lépéseket
A myimagejava pedig egy dockerhub-ról származó maven image.

Namost a saját useremmel lefut simán. Ha viszont Jenkins userként szeretném futtani a CI-ból akkor az alábbi hibát dobja.

"standard_init_linux.go:185: exec user process caused "no such file or directory" "

A deployhelper.sh -n van futtatás jog
Próbáltam már egy teljesen szűz folderből, amin csak jenkins:jenkins jog van hátha az a baj.
A Jenkins bent van a docker userek között tehát a docker ps, dokcer start... alap parancsok simán futnak sudo nélkül meg ilyenek tehát nem gondolom h ez a baj

Az basz fel nagyon hogy a saját useremmel simán megy, a másikal meg nem.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Ha jol latom felcsatolod a te usered $PWD-jet az /usr/src/mymaven-re ami working dir lesz es abban futtatnad az sh-t. Jenkins PWD-je ugyanaz mint a sajat usered PWD-je? Mert hogy a jenkins nem lat bele a usered home-jaba az tuti (vagyis szerintem). Igy viszont az exec nem talalja meg a futtathato allomanyt.
Ha jol ertem. Persze lehet tokre tevedek. :D

Nem ugyanaz
Ez az adott usernek a $PWD-je. Egy jenkins workspace folder amit a jenkins létrehoz a jobnak amiben fut.
Mielőtt elindul a docker run parancs, előtte van egy wget ami odateszi a deployhelper.sh-t a konyvtárba.

Úgy tűnik megvan a bibi.
beléptem a konténerbe és a folder fel volt mountolva.
A probléma az volt, hogy

/bin/sh^M: bad interpreter:
lecseréltem a fájlvégeket és már megy is. Most iszok egy sört.

Az hogy miért produkálta a docker a fenti üzenetet erre na arról fogalmam sincs.Sztem nincs köze a kettőnek egymáshoz de most megy.

De van. A docker egyetlen parancsot futtat a foregroundban, amihez az exec hivast hasznalja. Ez lehet a CMD vagy ENTRYPOINT az Image-ben, vagy amit te megadsz a run soran. A docker probalta az exec-el elinditani a windows altal elbarmolt sorvegekkel irt shell scriptet, de ugye nem tudta, mivel a fenti "ctrl+M"-re vegzodo allomany nem letezik. Probald ki, hogy csinalsz egy scriptet ahol az interpter "#!/bin/almakompot" es futtasd. A hiba az lesz, hogy "zsh: /tmp/geza: bad interpreter: /bin/almakompot: no such file or directory".
Az egy mas kerdes, hogy a szokasos kreten docker kibaszta az error utolso reszet, a tobbit meg nem. :

Áhhá. Így már világos.