I’ve exhausted the 5K builds limit on my drone server, so I decided to switch to CE. I have successfully (? , not so sure at the moment) built the CE image, and have ran some builds on it, then the runner-server chain eventually broke down with bunch of errors in runner:
level=error msg="cannot ping the remote server" error="404 page not found\n"
and these are errors the runner is getting on POST /rpc/v2/ping requests.
The thing is - I’ve set up the drone chain in a swarm stack, so if I’m doing one singe change - if I switch CE to EE using the image line in the yaml manifest - everything is back to normal.
So, why is the runner unable to ping the drone server when the server is running CE image ?
It will be difficult to troubleshoot a docker image you have built yourself, but let’s give it a shot…
When you built the image, had you checked out a specific tag? If so, did the tag match the version of the drone EE docker image you are running that works?
I actually did - I’ve checked out the v2.9.1. However, - you’re totally right- I’m running tagless latest GA image for EE.
I also did some other weird stuff - I mean, we all have some Dunning-Kruger stuff going on, and I’m pretty sure this did not affect the entire logic of what’s happening, bit this may be just it.
Things that went south during the build and how I’ve fixed them:
the binary has been built just flawlessly (god bless the go/make stuff authors, and may they live long and prosper)
then I assumed that I’m not the smartest guy around, and there’s definitely have to be some Dockerfiles around, or some script stuff that developers use to build the images; and there was a bunch of both
I found ./scripts and ./docker directories; found not much use of the first, but the second was quite useful
however (and this fact I don’t understand) the provided amd64 server Dockerfile based on alpine was totally unable to use the drone-server glibc-built binary, so I had to slightly modify the Dockerfile, so the final image was able to run the binary:
That’s actually the end of it, I would be happy to hear how does one really build the drone CE docker image. And yeah, that Dunning-Kruger stuff still makes me doubt that my modifications somehow jeopardized the ping logic - after all, it’s the same binary that was built without errors, right ?
Furthermore, I spent some time observing the drone-runner logic - seems like when working with the EE image it doesn’t ping the server that much/of all.