DEV Community

Ruben Voß
Ruben Voß

Posted on

run.bash & migrate.bash - Pimpe deine .bashrc auf 🔝🔥

Deine .bashrc

Deine .bashrc Datei ist ein Skript, das jedes mal bei deinem Shellzugriff aufgerufen wird. Hier kannst du verschiedene Werte setzen & Dein Leben dadurch leichter machen. Wir werden am Beispiel django jetzt Skripte für dein Projekt entwickeln, die dir den Start deines Projekts erleichtern. Außerdem werden wir deinen python manage.py migrate Befehl in einem Container absetzen, das erleichtert dir das Leben bei einem ganz schön langen Befehl.

Skripte anlegen

Lege bei dir in der Repository auf dem Level deines docker-compose.yml folgende Dateien an:

touch run.bash migrate.bash
chmod +x run.bash migrate.bash
Enter fullscreen mode Exit fullscreen mode

Folgenden Inhalt brauchen deine Skripte:
run.bash
Hier kannst du deinen Start-Befehl mit allen Optionen einfügenIch nutze -f, wegen dem speziellen Dateinamen mit --build Baue Ich die images neu vor Containerstart

#!/bin/bash
docker compose -f docker-compose.development.yml up --build
Enter fullscreen mode Exit fullscreen mode

migrate.bash
Mit exec -it container_name sh -c können wir unseren migrate Befehl absetzen. Alles in Anführungszeichen wird direkt im Container ausgeführt.

docker exec -it meine_app sh -c "python manage.py makemigrations && python manage.py migrate"
Enter fullscreen mode Exit fullscreen mode

Weil wir den container namen in der migrate.bash nutzen, muss du jetzt noch deine docker-compose Datei anpassen:

services:
  meine_app:
    # wir nutzen den Container Namen in migrate.bash
    container_name: meine_app
Enter fullscreen mode Exit fullscreen mode

Skripte in der .bashrc hinzufügen

Füge deine Skripte deiner .bashrc (oder bei mac .zshrc) Hinzu. Die .bashrc / .zshrc befinden sich in deinem home - Verzeichnis.

code ~/.bashrc
vi ~/.bashrc
Enter fullscreen mode Exit fullscreen mode

Wenn du nun "run" als App-Startbefehl nutzen willst und "migrate" als migrierbefehl, kannst du Folgendes hinzufügen:

# selfmade build and run scripts
alias run="./run.bash"
alias migrate="./migrate.bash"
Enter fullscreen mode Exit fullscreen mode

Du kannst natürlich deine Skripte anders nennen, und den Befehl zum ausführen der Skripte auch... Es macht aber Sinn, wenn du mehrere Projekte starten / migrieren musst, den Befehl einheitlich zu halten.
Jetzt kannst du nämlich in jedem Projekt ein run.bash hinzufügen. Solange der name des Skriptes "run.bash" bleibt, reicht es jetzt run auszuführen - Deine App startet.
Du kannst den Skriptinhalt auch verändern, wenn du bei unterschiedlichen Projekten deine App verschieden Starten willst.

Happy Coden!
Dein Ruben

Mein Blog

Top comments (0)