Hi there,
I’m a young student trying to do something a little bit complicated to me
I’ve got a repo on github with my Dockerfile in (with many config file too, as an Entrypoint.sh who initialize some things when i run docker Container with my docker image)
I would like to connect my github repo with Jenkins (something i think i successed) and i want to use Docker directly into Jenkins.
In fact We have :
My Github Repo with my Dockerfile manage by Jenkins2 (& pipelines) => Jenkins Build my Docker Image with my Dockerfile on Github
( docker build -t solene/installtv2 . )
At this step, I just want to use Jenkins to run Docker containers to test applications dev by my coworkers.
But each time I try to run Docker container this error appear :
docker run -e DATABASE_TYPE=mysql -e DATABASE_USER=tracimuser -e DATABASE_PASSWORD=tracimpassword -e DATABASE_HOST=192.168.1.73 -e DATABASE_NAME=tracimdb solene/installtv2
container_linux.go:262: starting container process caused "exec: \"/tracim/entrypoint.sh\": permission denied"
docker: Error response from daemon: oci runtime error: container_linux.go:262: starting container process caused "exec: \"/tracim/entrypoint.sh\": permission denied".
time="2017-08-17T11:21:12+02:00" level=error msg="error waiting for container: context canceled"
script returned exit code 126
I don’t understand why When I try it localy it works
Do you have some advices ?
Is it better to user master/slave configuration in this case ? (thing i don’t know how to use, and i don’t really understand)
can you post a docker run --entrypoint bash YOUR_IMAGE ls -lisa /ENTRYPOINT-PATH…from there you can step by step try to reduce the problem to its root cause.
I’ve tried : docker run --entrypoint bash solene/installtv2 -c ls -lisa /var/lib/jenkins/workspace/Sowlene_Testdocker_master-PYO76PG2MVGEIIOJ3RJCE7EOHZTFGO7XLVV32IOJYUTNYG42QINA/entrypoint.sh -e DATABASE_TYPE=sqlite -e DATABASE_USER=tracimuser -e DATABASE_PASSWORD=tracimpassword -e DATABASE_HOST=192.168.1.73 -e DATABASE_NAME=tracimdb
And this step works ! It returns :
bin
boot
dev
etc
home
lib
lib32
lib64
libx32
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
tracim
usr
var
Can you explain what this command is trying to do ? (Sorry for my english )
Or the difference between : docker run -e DATABASE_TYPE=mysql -e DATABASE_USER=tracimuser -e DATABASE_PASSWORD=tracimpassword -e DATABASE_HOST=192.168.1.73 -e DATABASE_NAME=tracimdb solene/installtv2
and docker run --entrypoint bash solene/installtv2 -c ls -lisa /var/lib/jenkins/workspace/Sowlene_Testdocker_master-PYO76PG2MVGEIIOJ3RJCE7EOHZTFGO7XLVV32IOJYUTNYG42QINA/entrypoint.sh -e DATABASE_TYPE=sqlite -e DATABASE_USER=tracimuser -e DATABASE_PASSWORD=tracimpassword -e DATABASE_HOST=192.168.1.73 -e DATABASE_NAME=tracimdb
?
Why the last command return : bin boot dev etc home lib lib32 lib64 libx32 media mnt ... What does it means ?
bash is a shell. It executes every command you provide it.
ls -lisaprints you all files in the current directory with access rights, sizes, …
try to stick to bash as entrypoint instead of your script until you know what causes the problem with your entrypoint.
You also could try to start just a bash and then debug your entrypoint-script. Not sure if you know set -x. This could be helpful to see where exactly your entrypoint fails.
I know “-x” but i can’t use it into Jenkins, or i don’t know how i can !?
So, when i used this command docker run --entrypoint bash solene/installtv2 -c ls -lisa /var/lib/jenkins/workspace/Sowlene_Testdocker_master-PYO76PG2MVGEIIOJ3RJCE7EOHZTFGO7XLVV32IOJYUTNYG42QINA/entrypoint.sh -e DATABASE_TYPE=sqlite -e DATABASE_USER=tracimuser -e DATABASE_PASSWORD=tracimpassword -e DATABASE_HOST=192.168.1.73 -e DATABASE_NAME=tracimdb
What docker do ? Is it running my container or is it just stopping the execution at ls -lisa /var/lib … without running my container ?