This is an unofficial and experimental build of the drone docker runner for riscv64 architectures.
98
Conversation dump during the build that has some info on how I made this, I will clear up formatting later
ME: I'm trying to do something unsupported. I've got a riscv64 system that I'm wanting to run the docker runner on so that i can run checks on it. This isn't supported, but I've got docker and everything else ready, I just need to figure out if I can build the runner myself to do that but I'm not sure how to do that.
M.A.: Hey Ryan! Could you give us a rundown on what you have already tried?
ME: I've not tried much since I can't figure out where or how to build the docker runner at all. https://docs.drone.io/runner/docker/installation/linux/ This is the runner i'm referring to, but as it isn't built for riscv64 I'd like to try to build it myself but I can't find any way to do that
M.A.2: This is the repo for the Docker runner :slightly_smiling_face:https://github.com/drone-runners/drone-runner-docker
M.A.2: scripts/build.sh should point you in the right direction
ME: Aha, that's the one I couldn't find. I found the old one that was archived but didn't find that one. Thanks I'll give building that a shot
M.A.2: Curious to hear how it goes!
ME: Yea getting the system up and working in the first place wasn't too hard but it wasn't trivial either. Docker itself isn't officially supported there but it seems to run fine.
M.A: Thanks @M.A.2 for helping out! :drone: :tada: Let us know if that works @ME
ME: Yep, it'll take a while. The board isn't exactly slow but it's not a powerhouse either. Probably on the speed of a RPI3B (nonplus)
ME: Immediate result is a go issue with golang.org/x/sys module. Will look into that and figure it out. I suspect it just needs to be using a newer version that has the experiemental riscv support
ME: yep, go get -u golang.org/x/sys seems to have cleared that up. The version it originally pulled was from 2019 and I think the riscv64 experimental support was added in 2020
ME: ok runner looks good, now i've just got to get tmate built to make the whole container :slightly_smiling_face:
ME: That has proven slightly more difficult. For whatever reason, tmate can't find forkpty() from musl libc in the riscv64 build of alpine. Had to go crib the source and copy it into compat/forkpty-linux.c
ME: and for alpine edge that also needs zlib-static and openssl-libs-static to build correctly.
ME: and built tmate finally. https://github.com/simcop2387/tmate/releases/tag/2.4.0
ME: all built and pushed to docker hub, will get a runner going against my local master tonight after $WORK is done. https://hub.docker.com/repository/docker/simcop2387/drone-docker-runner
Content type
Image
Digest
Size
8.4 MB
Last updated
over 4 years ago
docker pull simcop2387/drone-docker-runner