Update README.md
This commit is contained in:
parent
3d7bb0db81
commit
a13e07a9b9
1 changed files with 22 additions and 65 deletions
87
README.md
87
README.md
|
@ -30,6 +30,7 @@ Create the data directories (`/data`) for persisting Forgejo runner configuratio
|
|||
|
||||
```sh
|
||||
sudo mkdir -p /data/.cache /data/.config
|
||||
sudo touch /data/.runner
|
||||
|
||||
sudo chown -R $UID:$UID /data
|
||||
sudo chmod -R 700 /data
|
||||
|
@ -41,72 +42,40 @@ Clone this repository:
|
|||
git clone https://git.poire.dev/aramperes/forgejo-runner-podman.git
|
||||
```
|
||||
|
||||
For the first-time set-up, you will need to stop the Forgejo Runner from starting up so you can configure the token with your Forgejo server.
|
||||
For the first-time set-up, you will need to stop the Forgejo Runner from starting to register with the Forgejo server.
|
||||
|
||||
```diff
|
||||
# vim forgejo-runner-quadlet/quadlets/forgejo-runner.container
|
||||
# vim docker-compose.yml
|
||||
|
||||
- Exec=/bin/sh -c "sleep 5; forgejo-runner daemon -c .config/config.yml"
|
||||
- # Exec=/bin/sh -c "while : ; do sleep 1 ; done ;"
|
||||
+ # Exec=/bin/sh -c "sleep 5; forgejo-runner daemon -c .config/config.yml"
|
||||
+ Exec=/bin/sh -c "while : ; do sleep 1 ; done ;"
|
||||
- command: /bin/sh -c "sleep 5; forgejo-runner daemon -c .config/config.yml"
|
||||
- # command: /bin/sh -c "while : ; do sleep 1 ; done ;"
|
||||
+ # command: /bin/sh -c "sleep 5; forgejo-runner daemon -c .config/config.yml"
|
||||
+ command: /bin/sh -c "while : ; do sleep 1 ; done ;"
|
||||
```
|
||||
|
||||
Create the directory for the quadlets. SystemD will be looking for the quadlets here, and we can use symbolic links to keep them in sync with this repo.
|
||||
Start the services:
|
||||
|
||||
```sh
|
||||
mkdir -p $HOME/.config/containers/systemd
|
||||
|
||||
for f in forgejo-runner-quadlet/quadlets/*; do ln -s $(realpath $f) $HOME/.config/containers/systemd/$(basename $f); done
|
||||
```
|
||||
|
||||
Confirm:
|
||||
|
||||
```sh
|
||||
ls -l $HOME/.config/containers/systemd/
|
||||
|
||||
# forgejo-runner.container -> /home/user/forgejo-runner-quadlet/quadlets/forgejo-runner.container
|
||||
# podman-runtime.container -> /home/user/forgejo-runner-quadlet/quadlets/podman-runtime.container
|
||||
# runner.network -> /home/user/forgejo-runner-quadlet/quadlets/runner.network
|
||||
```
|
||||
|
||||
Run SystemD generator dry-run to validate the quadlets:
|
||||
|
||||
```sh
|
||||
/usr/lib/systemd/system-generators/podman-system-generator --user --dryrun && echo 'Validated!'
|
||||
```
|
||||
|
||||
Reload SystemD daemon and start the Runner. This will automatically create the Podman Runtime container and the bridge network.
|
||||
|
||||
```sh
|
||||
systemctl --user daemon-reload
|
||||
systemctl --user start forgejo-runner.service
|
||||
podman-compose up -d
|
||||
```
|
||||
|
||||
Confirm the containers are running. This might take a few seconds.
|
||||
|
||||
```sh
|
||||
podman ps
|
||||
|
||||
# CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
# b2e57b02edea quay.io/podman/stable:latest podman system ser... 6 minutes ago Up 6 minutes systemd-podman-runtime
|
||||
# 7521cab26b80 data.forgejo.org/forgejo/runner:9 /bin/sh -c while ... 14 seconds ago Up 15 seconds systemd-forgejo-runner
|
||||
```
|
||||
|
||||
To enable automatic start-up on boot, your user needs to have "lingering" enabled in SystemD:
|
||||
|
||||
```sh
|
||||
sudo loginctl enable-linger $USER
|
||||
# 71cb0d2af329 quay.io/podman/stable:latest podman system ser... 12 minutes ago Up 12 minutes podman-runtime
|
||||
# 9b29fcb10113 data.forgejo.org/forgejo/runner:9 /bin/sh -c while ... 12 minutes ago Up 12 minutes forgejo-runner
|
||||
```
|
||||
|
||||
## Register the Runner
|
||||
|
||||
On your Forgejo server's `Site administration` page, go to `Action` then `Runners`. Click `Create a new runner` and copy the token.
|
||||
On your Forgejo server's `Site administration` page, go to `Actions`, `Runners`. Click `Create a new runner` and copy the token.
|
||||
|
||||
Back on your Forgejo Runner host, run:
|
||||
|
||||
```sh
|
||||
podman exec -it systemd-forgejo-runner /bin/sh
|
||||
podman exec -it forgejo-runner /bin/sh
|
||||
|
||||
# Run inside the container and follow the instructions:
|
||||
# (I recommend setting the label 'docker')
|
||||
|
@ -133,22 +102,21 @@ container:
|
|||
+ privileged: true
|
||||
```
|
||||
|
||||
Revert the runner's quadlet to launch the daemon:
|
||||
Revert the runner's `command` to launch the daemon:
|
||||
|
||||
```diff
|
||||
# vim forgejo-runner-quadlet/quadlets/forgejo-runner.container
|
||||
# vim docker-compose.yml
|
||||
|
||||
- # Exec=/bin/sh -c "sleep 5; forgejo-runner daemon -c .config/config.yml"
|
||||
- Exec=/bin/sh -c "while : ; do sleep 1 ; done ;"
|
||||
+ Exec=/bin/sh -c "sleep 5; forgejo-runner daemon -c .config/config.yml"
|
||||
+ # Exec=/bin/sh -c "while : ; do sleep 1 ; done ;"
|
||||
- # command: /bin/sh -c "sleep 5; forgejo-runner daemon -c .config/config.yml"
|
||||
- command: /bin/sh -c "while : ; do sleep 1 ; done ;"
|
||||
+ command: /bin/sh -c "sleep 5; forgejo-runner daemon -c .config/config.yml"
|
||||
+ # command: /bin/sh -c "while : ; do sleep 1 ; done ;"
|
||||
```
|
||||
|
||||
Reload the quadlet and restart it:
|
||||
Update the services:
|
||||
|
||||
```sh
|
||||
systemctl --user daemon-reload
|
||||
systemctl --user restart forgejo-runner.service
|
||||
```
|
||||
podman-compose up -d
|
||||
```
|
||||
|
||||
Now, in the Forgejo server Runners page, you should see your new runner as "Idle".
|
||||
|
@ -192,14 +160,3 @@ jobs:
|
|||
username: ${{ env.FORGEJO_ACTOR }}
|
||||
password: ${{ secrets.PACKAGE_TOKEN }}
|
||||
```
|
||||
|
||||
## Making Changes
|
||||
|
||||
If you would like to modify the quadlet configurations, you will need to run these commands to validate, apply, and restart:
|
||||
|
||||
```sh
|
||||
/usr/lib/systemd/system-generators/podman-system-generator --user --dryrun && echo 'Validated!'
|
||||
systemctl --user daemon-reload
|
||||
systemctl --user restart podman-runtime.service
|
||||
systemctl --user restart forgejo-runner.service
|
||||
```
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue