[30388f42] Doc: Migration steps for docker1 setup (Gitea & Gemini CLI)
This commit is contained in:
87
umzug.md
Normal file
87
umzug.md
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
# Migration Report: Setup on docker1 (Ubuntu 24.04)
|
||||||
|
|
||||||
|
**Datum:** 10.02.2026
|
||||||
|
**Ziel:** Einrichtung einer sauberen Entwicklungsumgebung ("Greenfield") auf der neuen VM `docker1` (10.10.81.2).
|
||||||
|
|
||||||
|
## 1. System- & Docker-Konfiguration
|
||||||
|
|
||||||
|
Vor der Installation der Anwendungen mussten grundlegende Systemanpassungen vorgenommen werden, um Docker auf Ubuntu 24.04 lauffähig zu machen.
|
||||||
|
|
||||||
|
* **Docker-Rechte:** Der Benutzer wurde der Gruppe `docker` hinzugefügt (`sudo usermod -aG docker $USER`), um `sudo` für Docker-Befehle zu vermeiden.
|
||||||
|
* **DNS-Fix:** Es gab massive Probleme mit der DNS-Auflösung innerhalb von Docker-Containern (Konflikt mit `systemd-resolved` und Stub-Resolver auf `127.0.0.53`).
|
||||||
|
* *Lösung:* `systemd-resolved` wurde deaktiviert und `/etc/resolv.conf` wurde manuell auf Google DNS (`8.8.8.8`) gesetzt.
|
||||||
|
* *Befehle:*
|
||||||
|
```bash
|
||||||
|
sudo systemctl stop systemd-resolved
|
||||||
|
sudo systemctl disable systemd-resolved
|
||||||
|
sudo rm /etc/resolv.conf
|
||||||
|
echo -e 'nameserver 8.8.8.8\nnameserver 8.8.4.4' | sudo tee /etc/resolv.conf
|
||||||
|
sudo systemctl restart docker
|
||||||
|
```
|
||||||
|
|
||||||
|
## 2. Gitea Installation (Docker Compose)
|
||||||
|
|
||||||
|
Gitea wurde als zentrale Versionsverwaltung eingerichtet.
|
||||||
|
|
||||||
|
* **Methode:** Docker Compose mit PostgreSQL.
|
||||||
|
* **Herausforderung:** Die automatische Admin-Erstellung über Umgebungsvariablen (`GITEA__admin__...`) schlug fehl (Race Condition oder Image-Bug).
|
||||||
|
* **Lösung:** Manuelle Installation über das Web-Interface.
|
||||||
|
* **Konfiguration (`docker-compose.yml`):**
|
||||||
|
```yaml
|
||||||
|
version: "3"
|
||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: postgres:16
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: gitea
|
||||||
|
POSTGRES_PASSWORD: 'secure_password'
|
||||||
|
POSTGRES_DB: gitea
|
||||||
|
volumes:
|
||||||
|
- ./postgres:/var/lib/postgresql/data
|
||||||
|
networks:
|
||||||
|
- gitea-network
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "pg_isready -U gitea -d gitea"]
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
gitea:
|
||||||
|
image: gitea/gitea:1.21
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- gitea-network
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
- "2222:22"
|
||||||
|
volumes:
|
||||||
|
- ./gitea:/data
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
|
||||||
|
networks:
|
||||||
|
gitea-network:
|
||||||
|
external: false
|
||||||
|
```
|
||||||
|
* **Zugriff:** `http://10.10.81.2:3000`
|
||||||
|
|
||||||
|
## 3. Gemini CLI Umgebung
|
||||||
|
|
||||||
|
Die Gemini CLI wurde nicht nativ installiert, sondern als isolierte Docker-Umgebung eingerichtet, um Konsistenz zu gewährleisten.
|
||||||
|
|
||||||
|
* **Ansatz:** Custom Docker Image (`gemini-dev-env`) gesteuert durch ein Shell-Skript (`startgemini.sh`).
|
||||||
|
* **Dateien:*
|
||||||
|
* `gemini.Dockerfile`: Basiert auf `node:20-slim`, installiert Python, Git und `@google/gemini-cli`.
|
||||||
|
* `startgemini.sh`: Baut das Image (falls nötig) und startet den Container mit gemountetem Projektverzeichnis.
|
||||||
|
* `.env`: Enthält den `GEMINI_API_KEY`.
|
||||||
|
* **Workflow:*
|
||||||
|
1. Dateien manuell erstellt.
|
||||||
|
2. `chmod +x startgemini.sh`
|
||||||
|
3. Start via `./startgemini.sh` -> Startet interaktive Session im Container.
|
||||||
|
|
||||||
|
## Status
|
||||||
|
✅ System ist bereit. Gitea läuft, Gemini CLI ist einsatzbereit.
|
||||||
Reference in New Issue
Block a user