commit 54256d4bbac625f2412a67bad1a5ede1e9e85ced Author: Neale Pickett Date: Fri Oct 27 23:03:32 2023 -0600 Yep, works diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f954cc9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +FROM alpine AS base +RUN apk --no-cache add \ + build-base \ + hugo \ + rsync \ + openssh-client \ + python3 \ + curl \ + ca-certificates \ + git +RUN curl -L https://go.dev/dl/go1.21.3.linux-armv6l.tar.gz | gunzip | tar x -C /opt -f - +RUN ln -s /opt/go/bin/* /usr/local/bin/ + + +FROM base AS runner-build +WORKDIR /src +RUN git clone https://gitea.com/gitea/act_runner +RUN CGO_ENABLED=0 make -C act_runner build + +FROM base +COPY --from=runner-build /src/act_runner/act_runner /usr/local/bin +COPY entrypoint.sh / +RUN adduser -D builder +USER builder +WORKDIR /app +ENTRYPOINT [ "/entrypoint.sh" ] diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..0528a77 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright © 2023 Neale Pickett + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +* The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + +The software is provided "as is", without warranty of any kind, express or +implied, including but not limited to the warranties of merchantability, +fitness for a particular purpose and noninfringement. In no event shall the +authors or copyright holders be liable for any claim, damages or other +liability, whether in an action of contract, tort or otherwise, arising from, +out of or in connection with the software or the use or other dealings in the +software. diff --git a/README.md b/README.md new file mode 100644 index 0000000..2b50af9 --- /dev/null +++ b/README.md @@ -0,0 +1,62 @@ +Big Builder +=========== + +I personally don't want to be running CI/CD automation +with full access to my Docker socket. + +I made this image to hold all my typical build toolset, +and also the gitea runner, +so now I can just say `runs-on: big-builder`, +and stuff works without docker. + +This does mean I can't use github actions. +That's okay with me: +I don't want to be running node on my Raspberry Pi, either. +I know how to use the Bourne shell, +so I'm able to do everything I want that way. + + +How To Set This Up +------------------ + +This wants its files to live in `/app`. +After you do the registration step, +that can be mounted read-only. +But it will want to write its token in the registration step. + +You should provide custom tags: +that's how you keep it from trying to use docker. +On my raspberry pi, +I used `["big-builder", "aarch64", "go", "python3", "hugo"]`. + +Otherwise, just set this up the same way you would set up the +[gitea act runner](https://docs.gitea.com/usage/actions/act-runner). + +To run in daemon mode, +you have to give it `daemon` on the commandline: +I didn't make a fancypants script to guess the command. + + +Adding Other Packages +--------------------- + +Make your own image. Like so: + +```Dockerfile +FROM big-builder +RUN apk --no-cache add nethack +`` + +Even better, steal this one's Dockerfile and add stuff to it. +You shouldn't trust my image to be malware-free. + + +Caveats +------- + +Right now (October 2023), +if anything tries to read from the tty, +the runner just sits there forever. +This is a problem with the runner that they might fix one day. +Just something to bear in mind: +I spent a bit of time chasing this one down. diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000..0859302 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,4 @@ +#! /bin/sh + +exec