Add comprehensive GUIDE.md (1000+ lines) covering GitCaddy Runner installation, registration, configuration, deployment options (Docker, Kubernetes, VM), workflow examples, artifact handling, cache server setup, and troubleshooting. Update all deployment example READMEs with improved instructions and clarifications for Docker Compose, Kubernetes (DinD and rootless), and VM deployments. Enhance YAML configurations with better comments and security practices.
3.0 KiB
3.0 KiB
Using Rootless Docker with gitcaddy-runner
Here is a simple example of how to set up gitcaddy-runner with rootless Docker. It has been created with Debian, but other Linux should work the same way.
Note: This procedure needs a real login shell -- using sudo su or other method of accessing the account will fail some of the steps below.
As root:
- Create a user to run both
dockerandgitcaddy-runner. In this example, we use a non-privileged account calledrootless.
useradd -m rootless
passwd rootless
apt-get install -y uidmap # Not mentioned but needed for docker rootless.
-
Install
docker-ce -
(Recommended) Disable the system-wide Docker daemon
systemctl disable --now docker.service docker.socket
As the rootless user:
- Follow the instructions for enabling rootless mode
- Add the following line to the
/home/rootless/.bashrc:
for f in ./.bashrc.d/*.bash; do echo "Processing $f file..."; . "$f"; done
- Create the .bashrc.d directory
mkdir ~/.bashrc.d - Add the following lines to the
/home/rootless/.bashrc.d/rootless-docker.bash:
export XDG_RUNTIME_DIR=/home/rootless/.docker/run
export PATH=/home/rootless/bin:$PATH
export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock
- Reboot. Ensure that the Docker process is working.
- Create a directory for saving
gitcaddy-runnerdata between restarts
mkdir /home/rootless/gitcaddy-runner
- Register the runner from the data directory
cd /home/rootless/gitcaddy-runner
gitcaddy-runner register
- Generate a
gitcaddy-runnerconfiguration file in the data directory. Edit the file to adjust for the system.
gitcaddy-runner generate-config >/home/rootless/gitcaddy-runner/config
- Create a new user-level
systemdunit file as/home/rootless/.config/systemd/user/gitcaddy-runner.servicewith the following contents:
Description=GitCaddy Actions runner
Documentation=https://git.marketally.com/gitcaddy/gitcaddy-runner
After=docker.service
[Service]
Environment=PATH=/home/rootless/bin:/sbin:/usr/sbin:/home/rootless/bin:/home/rootless/bin:/home/rootless/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Environment=DOCKER_HOST=unix:///run/user/1001/docker.sock
ExecStart=/usr/bin/gitcaddy-runner daemon -c /home/rootless/gitcaddy-runner/config
ExecReload=/bin/kill -s HUP $MAINPID
WorkingDirectory=/home/rootless/gitcaddy-runner
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
Type=notify
NotifyAccess=all
KillMode=mixed
[Install]
WantedBy=default.target
- Reboot
After the system restarts, check that gitcaddy-runner is working and that the runner is connected to GitCaddy.
systemctl --user status gitcaddy-runner
journalctl --user -xeu gitcaddy-runner