Hoste linux/arm64 GitLab Runners auf deinem Mac mini M1
Dies ist meine erste Investition in neue Apple-Hardware seit 10 Jahren. Die Hauptgründe dafür sind der Übergang zu Apple Prozessoren und die Verwendung von APFS-Snapshots für macOS-Dienste.
Ich habe mich für 16 GB gemeinsamer Arbeitsspeicher und 256 GB SSD Speicher
entschieden, da dieser Mac hauptsächlich zum Erstellen von linux/arm64
Docker
Images verwendet wird.
ℹ️ Das ist in etwa der Preis für eine reservierte AWS
EC2-Instanz vom Typ t4g.xlarge
(12 Monate, alles vorausbezahlt).
Docker Desktop für Apple Silicon
Obwohl es sich immer noch um ein «tech preview» handelt, Rosetta 2 erfordert und angeblich viele bekannte Probleme auftreten*, laufen meine GitLab Runners einwandfrei und erledigen ihre Arbeit.
*Für weitere Informationen siehe https://docs.docker.com/docker-for-mac/apple-m1/.
Docker Einstellungen
Änderungen gegenüber den Standardeinstellungen:
- Memory: Auf 16 GB einstellen
- Swap: Auf 4 GB einstellen
👉 CPUs auf 4 belassen, da der Mac mini M1 über vier «performance cores» verfügt.
Als «headless server» betreiben
Ich habe immer schon Apple Remote Desktop verwendet, um meine Macs zu verwalten. Die folgenden Einstellungen sind erforderlich, um den Zugriff zu ermöglichen:
- System Preferences > Security & Privacy: FileVault ausgeschaltet lassen
- System Preferences > Sharing: Dienst «Remote Management» einschalten
❗ Wenn FileVault aktiviert ist, stellt der Mac beim Anmeldebildschirm keine Netzwerkverbindung her.
Docker Desktop starten
Um Docker Desktop zu starten, muss man sich über den Anmeldebildschirm von macOS anmelden. Zudem ist folgende Einstellung anzupassen, damit der Mac nicht in den Ruhezustand wechselt:
- System Preferences > Energy Saver: «Prevent computer from sleeping
automatically when the display is off» aktivieren
GitLab Runners aufsetzen
Für eitere Informationen zum Einrichten von GitLab Community Edition (CE) und GitLab Runners siehe b-data GitLab > Docker > Deployments > GitLab CE.
Leistung
Der Mac mini M1 ist leistungsstärker als eine AWS EC2-Instanz vom Typ
t4g.xlarge.
😲 Wenn man bedenkt, dass Docker Desktop für Apple Silicon in einer
virtuellen Maschine ausgeführt wird, welche das neue Virtualization Framework
verwendet, ist die Leistung herausragend.