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.
- 989 megtekintés
Hozzászólások
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
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Ú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.
- A hozzászóláshoz be kell jelentkezni
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. :
- A hozzászóláshoz be kell jelentkezni
Áhhá. Így már világos.
- A hozzászóláshoz be kell jelentkezni