Installation der nötigen Software
Click here for the English version.
Wir benutzen Docker-Container und Docker Compose für unsere Build- und Testumgebung.
Du kannst das "Docker Compose"-Setup benutzen, falls du mit einemder folgenden Systeme arbeitest:
- Linux (64bit)
- OSX Yosemite 10.10.3 oder neuer
- Windows 10 Pro oder neuer
Falls du keins davon benutzt, probiere es mit dem "Vagrant + Docker Compose"-Setup.
In den folgenden Abschnitten ist die Installation für die verschiedenen Systeme beschrieben:
Linux
In aktuellen Linux-Distributionen kannst du Docker wahrscheinlich einfach über den Paketmanager installieren. Stelle dabei nur sicher, dass Docker Compose mindestens in Version 1.6.0 verfügbar ist. Unter Debian oder Ubuntu sollte die Installation zum Beispiel über folgende Kommandozeile klappen:
sudo apt install docker.io docker-compose
Falls Docker oder Docker Compose nicht in einer aktuellen Version im Paketmanager verfügbar sind, folge bitte den Anleitungen für die Installation von Docker CE und Docker Compose.
Stelle sicher, dass dein Benutzer in der docker
-Gruppe ist. Ansonsten wird es zu Rechtefehlern kommen, wenn du später versuchst einen Docker-Container zu starten:
sudo usermod -aG docker $USER
Dann logge dich entweder noch einmal neu ein oder lade die Gruppen neu oder führe (in jedem Terminal) aus: su - $USER
Jetzt solltest du dich ohne Fehler verbinden können. Teste das, indem du folgendes ausführst:
docker info
Du kannst dir jetzt den Quellcode holen und ausführen.
OSX Yosemite 10.10.3 oder darüber
Installiere Docker for Mac (direct link).
Danach kannst du dir den Quellcode holen und ausführen.
Windows
Wir empfehlen, es unter wsl (Windows Subsystem for Linux) zu installieren. Auf den Ordner kann mit dieser Zeile zugegriffen werden: ''' \wsl$ '''
Windows Subsystem for Linux 2 (WSL 2)
- Installiere Ubuntu über den Microsoft Store und starte es
- Installiere das Windows Terminal über den Microsoft Store und starte es
- Öffne einen neuen Tab im Windows Terminal mit Ubuntu
- Füge folgendes in die Datei
~/.bashrc
mit einem Texteditor ein (z.B. mit nano)
export DOCKER_HOST=tcp://localhost:2375
export DOCKER_BUILDKIT=1
- Prüfe in den Docker-Einstellungen -> Resources -> WSL Integration, dass deine Umgebung aktiv ist.
Windows Subsystem for Linux 1 (WSL 1)
Installiere Docker for Windows (Direktlink) und Git for Windows.
Wenn Du Windows 10 Home verwendest, stelle sicher, dass Du alle Systemanforderungen erfüllst. Dann installiere sowohl Docker Desktop on Windows Home und Git for Windows.
Es ist wichtig, Docker-Zugriff auf C: zu gewähren (in der grafischen Docker-Oberfläche: Einstellungen -> Ressourcen -> Filesharing -> C markieren, anwenden und neu starten).
Du kannst deinen in der Kommando-Shell (z.B. cmd oder powershell) mit dem Befehl docker --version
testen. Wenn es etwas anzeigt, kannst du loslegen.
Starte jetzt dein Windows neu.
Es gibt eine grafische Benutzeroberfläche zur Verwaltung des Repos, die für Git-Anfänger empfohlen wird. Aber Du kannst die Git Bash-Shell genau wie unter Linux benutzen, um sie zu klonen:
git clone git@gitlab.com:foodsharing-dev/foodsharing.git foodsharing
Nach diesem Befehl befinden sich Deine Dateien im Ordner `%UserProfile%\foodsharing
Um die Container zu starten, verwende die Git Bash-Shell:
cd foodsharing
./scripts/start
Wenn Du das Startskript zum ersten Mal ausführst, was sehr viel Zeit in Anspruch nimmt, musst du wahrscheinlich der Windows-Firewall das OK geben, damit Docker funktioniert.
Bekannte Windows-Fehler
Allgemein
Wenn etwas nicht in Ordnung ist, überprüfe bitte in Deinem Task-Manager unter "Leistung", ob die Virtualisierung aktiviert ist und behebe gegebenenfalls Fehler.
Git-Fehler (bei WSL1)
Wenn Git nicht gut arbeitet, mach bitte folgendes:
cd foodsharing/bin
tr -d '\15' < console > console
Stell sicher, dass du die `Konsole'-Datei nicht committest und besprich vielleicht weitere Schritte mit dem Team.
[RuntimeException]
Wenn du eine [RuntimeException]
, bekommst, lass ./scripts/start
noch einmal und wieder und wieder laufen, bis alles fertig ist.
yarn lint
Es gibt einen bekannten Fehler bezüglich yarn, siehe: https://github.com/yarnpkg/yarn/issues/7187 and https://github.com/yarnpkg/yarn/issues/7732 und https://github.com/yarnpkg/yarn/issues/7551
Veränderungen in js, vue etc. erscheinen nicht
Damit der webpack-dev-server Änderungen erkennt, musst du diesen watchOptions-Block zu client/serve.config.js
hinzufügen:
[...]
module.exports = {
[...]
devServer: {
watchOptions: {
poll: true
},
[...]
Hinweis: Bitte achte darauf, diese Datei nicht nachträglich mit Ihren Änderungen zu übertragen.
Vagrant
Wenn Du keine der oben genannten Methoden verwenden kannst, dann sollte dies mit jedem gängigen Betriebssystem funktionieren. Allerdings sind wir mit dieser Lösung weniger vertraut, so dass wir Dich damit möglicherweise weniger gut unterstützen können:
Installiere VirtualBox und Vagrant.
Dann:
git clone git@gitlab.com:foodsharing-dev/foodsharing.git foodsharing
cd foodsharing
vagrant up
Für's Tägliche Arbeiten
vagrant up
startet die Maschine und das Foodsharing-Projekt.
vagrant halt
stoppt die virtuelle Maschine.
vagrant ssh
verbindet sich mit der virtuellen Maschine.
Sobald die Verbindung mit der virtuellen Maschine hergestellt ist, gehe mit cd /vagrant
nach /vagrant.
Dort wird der Foodsharing-Ordner in der VM gemountet.
Von dort aus kannst Du alle Skripte mit ./scripts/NAME
ausführen.
Notiz:
./Skripte/Start
wird immer ausgeführt, wenn Du die virtuelle Maschine mit vagrant up
startest.
Es gibt einen bekannten Fehler beim Ausführen von VirtualBox + nginx, dass nginx Dateien aus einem Speicher-Cache bedient. Wenn Du auf dieses Problem stößt, dann kann es wahrscheinlich behoben werden, indem Du den Speicher-Cache mit
sync; sudo sh -c "/bin/echo 3 > /proc/sys/vm/drop_caches"
or even running this every second with watch -n 1 'sync; sudo sh -c "/bin/echo 3 > /proc/sys/vm/drop_caches"'
ausführst.