Yep, works

This commit is contained in:
Neale Pickett 2023-10-27 23:03:32 -06:00
commit 54256d4bba
4 changed files with 113 additions and 0 deletions

26
Dockerfile Normal file
View File

@ -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" ]

21
LICENSE.md Normal file
View File

@ -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.

62
README.md Normal file
View File

@ -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.

4
entrypoint.sh Executable file
View File

@ -0,0 +1,4 @@
#! /bin/sh
exec </dev/null
exec /usr/local/bin/act_runner "$@"