Automatisiert Repo klonen, Pull Request ziehen und App bereitstellen - alles in Docker

Krik

Fleet Admiral Pro
Registriert
Juni 2005
Beiträge
16.894
Moin zusammen,

ich würde gerne das auf meinem NAS auf Knopfdruck automatisiert das machen lassen:
1. Git-Repo von FreeTube ziehen
2. Ausgewählten Pull Request mergen
3. Die App danach kompilieren
4. Die fertige App in einem eigenen lokalen Repo für ArchLinux bereit stellen
Das Ganze sollte idealerweise in einem oder mehreren Docker-Containern laufen.

Ich weiß, dass es so was geben muss, aber ich gebe auch zu, von solchen hochautomatisieren Buildumgebungen gar keine Ahnung zu haben. ^^
Zumindest auf Github kann ich sehen, dass da eine Reihe von Automatiken gibt, die diese wiederkehrenden Aufgaben übernehmen. Das hätte ich gerne auch bei mir.
Ideal wäre natürlich, wenn man sich diese Automatiken auch gleich per Knopfdruck importieren könnte. Ich glaube nur irgendwie nicht dran, dass das so einfach machbar ist.

Gruß
Krik
 
Warum immer alles so kompliziert? Du kannst doch sicher jeden einzelnen Punkt selber. Also einfach alle 4 Punkte in ein Script packen und fertig. KISS. Dann lernst du auch noch was und wenns mal irgendwo klemmt, kannst du dir selber weiterhelfen als mit einem Docker der nur eine ominöse Blackbox ist.
 
  • Gefällt mir
Reaktionen: nutrix
Würde auch einfach ein bash Script schreiben und das dann ausführen lassen. Wenn dein NAS nicht die nötige Software hat (git und was auch immer du zum kompilen nutzt) kannst du dir immer noch einen kleinen Docker Container bauen und das Script und die nötige Software dort installieren.

Was du bei git siehst sind halt workflows die automatisch getriggert werden und dann auch nur Befehle ausführen. Ist im Prinzip nichts anderes, nur halt als yml Datei. Kannst du auch nutzen wenn du lokal Github oder Gitlab installierst
 
Wenn du die volle Ladung wirklich nutzen willst, dann schau dir z.b. Gitea an, aber ich würde das auch per Skript oder so machen.
 
Krik schrieb:
ich würde gerne das auf meinem NAS auf Knopfdruck automatisiert das machen lassen:
1. Git-Repo von FreeTube ziehen
2. Ausgewählten Pull Request mergen
3. Die App danach kompilieren
4. Die fertige App in einem eigenen lokalen Repo für ArchLinux bereit stellen
Das Ganze sollte idealerweise in einem oder mehreren Docker-Containern laufen.
Und was hindert dich daran? Ist doch kein big deal.

Schritt 2 verstehe ich nicht, du meinst sicher einen branch oder tag checkout...

Ich kann dir später mal ein Dockerfile oder compose erstellen, wenn du willst

Ohne mir das Repo schon angesehen zu haben, stellt sich aber immer die Frage, wie die Schnittstelle vom container zum host sein soll, also die "Benutzereingabe"...
 
Ok, ich lese aus den Antworten, dass es hier offenbar keine halbwegs fertige Lösung gibt und man jedes Mal das Rad neu erfinden muss. Das hätte ich nicht gedacht.

kali-hi schrieb:
Und was hindert dich daran? Ist doch kein big deal.
Ich weiß nicht, wo man hier anfängt. Ich habe keinerlei Erfahrung mit so was. Docker Compose ymls habe ich bisher nur leicht modifiziert und nicht von Grund auf neu erstellt. Bei der ganzen Checkout und Build-Kette habe ich momentan keinen Plan, wie ich das realisieren kann.

kali-hi schrieb:
du meinst sicher einen branch oder tag checkout
Jepp.

kali-hi schrieb:
Ich kann dir später mal ein Dockerfile oder compose erstellen, wenn du willst
Sehr gerne. Dann hätte ich einen Startpunkt, auf den ich aufbauen kann. 👍

kali-hi schrieb:
Ohne mir das Repo schon angesehen zu haben, stellt sich aber immer die Frage, wie die Schnittstelle vom container zum host sein soll, also die "Benutzereingabe"...
Meine ursprüngliche Vermutung war, dass man eine Art lokales Github + Webinterface hostet und das dann entsprechend konfiguriert. Nachdem das wohl nicht der Fall ist, werde ich das per ssh anstoßen müssen. Fertige Builds können per durchgereichtem Volume aus dem Container herausgeholt werden.
 
@kIrK

Es gibt bereits einen Docker Container dafür:

https://hub.docker.com/r/linuxserver/freetube

Ein docker-compose.yml File kann so aussehen:

Code:
services:
  freetube:
    image: lscr.io/linuxserver/freetube:latest
    container_name: freetube
    security_opt:
      - seccomp:unconfined #optional
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
    volumes:
      - ./freetube-config/:/config/
    ports:
      - 3000:3000
      # - 3001:3001
    shm_size: "1gb"
    # restart: unless-stopped

Das musst du ggf. noch anpassen. 3000 ist der http Port, den https Port brauchts nicht. Wenn gestartet, solltest du http://localhost:3000 im Browser aufrufen können.

Starten: Im Nas konfigurieren oder im Terminal in den Ordner wechseln und docker compose up -d aufrufen.
 
Ok, wir haben wohl aneinander vorbeigeredet. Ich möchte nicht FreeTube im Docker haben.

Ich möchte im FreeTube-Repo einen bestimmten Tag oder Branch auswählen, kompilieren und das Kompilat in einem Arch-Repo lokal anbieten.
Das alles soll in einem oder mehreren Docker Containern auf einem NAS passieren.
 
  • Gefällt mir
Reaktionen: kali-hi
Zurück
Oben