- moodle mit docker
- inkl.
plugin
Ordner plugin
Ordner wird als Docker-Volume gemountet, so ist das plugin im Container verfügbar (siehe Zeile 55 indocker-compose.yml
)
- Im Hauptverzeichnis
.env
Datei anlegen - folgenden Inhalt einfügen:
#
# author Marc Burchart <marc.burchart@fernuni-hagen.de>
# version 1.0-20200928
# description The enviroment variables which should be passed to the service creation.
#
#
# Moodle configuration
#
MOODLE_LANG="de" # The default language
MOODLE_ADDRESS="http://localhost:8081" # The address of the webserver [You have to use http://...]
MOODLE_ADMINUSERNAME="fapra" # The username of the admin account
MOODLE_ADMINPASSWORD="password" # The password of the admin account
MOODLE_ADMINEMAIL="fapra@fernuni-hagen.de" # The email address of the admin
MOODLE_FULLNAME="My test Moodle" # The name of the Moodle instance
MOODLE_SHORTNAME="MTM" # A shortname for the Moodle instance
#
# Postgresql Database
#
POSTGRESQL_USERNAME="fapra" # The root username
POSTGRESQL_PASSWORD="password" # The root password
POSTGRESQL_MOODLEDB="moodle" # The database name where Moodle should store its data
#
# Pgadmin - A database admin tool running at tcp/8080
#
PGADMIN_EMAIL="fapra@fernuni-hagen.de" # An email for the login
PGADMIN_PASSWORD="password" # A password for the login
#
# Git
#
GIT_EMAIL="fapra@fernuni-hagen.de" # The email of the git user
GIT_NAME="Max Mustermann" # The name of the git user
GIT_PWD_SSH="" # The ssh key for a secured encryption [can be blank]
GIT_PWD_GPG="password" # The gpg key for signing commits
- Ins Verzeichnis
plugin
navigieren npm install
npm run build
docker-compose up
(Installation dauert ein wenig)
Das hier hinterlegte Projekt enthält eine Kombination von Abbildungen (Images), welche zusammen eine fertige Umgebung für die Entwicklung von Moodle-Plugins bereitstellen. Mithilfe der Open Source Software Docker können die Images virtualisiert auf dem Host-Rechner in Form von sog. Containern ausgeführt werden. Somit können die Anwendungen (bis zu einem bestimmten Grad) isoliert vom Host-Betriebssystem laufen. Docker basiert auf Linux, auch wenn mittlerweile eigene Programmierschnittstellen von den Entwicklern entwickelt wurden.
Docker wird für alle gängigen Betriebssysteme zur Verfügung gestellt. Für das hier hinterlegte Projekt sind die beiden Komponenten Docker Engine und Docker Compose erforderlich und müssen deshalb beide auf dem Host-Computer installiert sein. Eine genaue Installationsanweisung zu Ihrem Betriebssystem finden Sie in der folgenden Tabelle.
Betriebssystem | Docker Engine | Docker Compose |
---|---|---|
macOS | [Docker Desktop](https://docs.docker.com/docker-for-mac/install/) | |
Windows 10 | [Docker Desktop](https://docs.docker.com/docker-for-windows/install/) | |
CentOS | [Docker Engine](https://docs.docker.com/engine/install/centos/) | [Docker Compose](https://docs.docker.com/compose/install/) |
Debian | [Docker Engine](https://docs.docker.com/engine/install/debian/) | [Docker Compose](https://docs.docker.com/compose/install/) |
Fedora | [Docker Engine](https://docs.docker.com/engine/install/fedora/) | [Docker Compose](https://docs.docker.com/compose/install/) |
Raspbian | [Docker Engine](https://docs.docker.com/engine/install/debian/) | [Docker Compose](https://docs.docker.com/compose/install/) |
Ubuntu | [Docker Engine](https://docs.docker.com/engine/install/ubuntu/) | [Docker Compose](https://docs.docker.com/compose/install/) |
Die hier angebotene Umgebung verwendet – wie bereits oben erwähnt – einen Sammlung von verschiedenen Containern, die teilweise miteinander in Verbindung stehen. Im Folgenden werden die Namen der einzelnen Container und ihre "Inhalte" kurz aufgeführt:
- postgres - PostgreSQL ist ein freies, objektrelationales Datenbankmanagementsystem.
- pgadmin - Eine Open-Source-Software zur Entwicklung und Administration von PostgreSQL-Datenbanken.
- moodle - Ein Webserver (Apache2) mit PHP, Git (ein freie Software zur verteilten Versionsverwaltung) und der Instanz der Lernplattform Moodle.
- Apache2 (latest)
- PostgreSQL (latest)
- Pgadmin4
- PHP (latest) mit allen benötigten Extensions
- Gnupg2
- Wget
- Curl
- Git
Navigieren Sie mit der Betriebssystem-Shell in den Ordner des auf dem Host-Computer geklonten Repositories. Öffnen Sie die .env Datei mit einem Editor Ihrer wahl geben dort eigene Login-Daten ein. Dabei kann GIT_PWD_SSH
einen leeren String erhalten, im Gegensatz zu GIT_PWD_GPG
. Bitte beachten Sie auch, dass Sie die richtige GitLab-Mailadresse angeben.
Mit der Shell können Sie nun folgende Befehle verwenden:
docker-compose up
Erstellen und erstmaliges Ausführen der Container.docker-compose start
Die Ausführung der Container starten. (Dieser Befehl wird anstattdocker-compose up
ausgeführt, wenn die Container schon angelegt wurden).docker-compose stop
Die Ausführung der Container stoppen.docker-compose pause
Die Ausführung der Container pausieren.docker-compose unpause
Die Ausführung der Container nach dem Pausieren wieder starten.docker-compose rm
Die Ausführung der Container stoppen und die Container löschen.
Eine vollständige Liste mit allen Befehlen finden Sie in der offiziellen Dokumentation.
Werden die Container erstmalig erstellt, wird im Root-Verzeichnis des Projekts ein Ordner keys
angelegt. Dieser Ordner enthält die öffentlichen Schlüsseldateien des Moodle-Containers, welche in GitLab für den SSH-Zugriff und zur GPG-Validierung verwendet werden.
Kopieren Sie jeweils den Inhalt der Dateien gpg.pub und ssh.pub und fügen Sie ihn in die Einstellungen von GitLab (Weboberfläche) ein.
- ssh.pub – Einstellungen > SSH-Schlüssel
- gpg.pub – Einstellungen > GPG-Schlüssel
Um per Webserver Zugriff auf die Moodle-Instanz zu nehmen, verwenden Sie bitte den Browser Ihrer Wahl und öffnen Sie die URL http://localhost. Bitte achten Sie darauf, dass der Port 80 auf Ihrem Host-Computer zu der Zeit nicht verwendet wird.
Um Zugriff auf die verwendete PostgreSQL-Datenbank zu nehmen, öffnen Sie bitte mit dem o.g. Browser die URL http://localhost:8080.
Es empfiehlt sich als Entwicklungsumgebung Visual Studio Code zusammen mit dem VSC-Plugin Remote - Container zu verwenden. In der linken Hauptnavigation des Editors finden Sie nach erfolgreicher Installation beider Komponenten den Eintrag "Remote Explorer". Dort sollte eine Übersicht erscheinen, mithilfe der Sie den laufenden Moodle-Container auswählen können. Dabei öffnet sich oben eine leere Adressleiste, die Sie nutzen können, um zu dem benötigten Pfad innerhalb des Containers navigieren zu können. Das Root-Verzeichnis des Webservers befindet sich unter /var/www
, wo auch die Moodle-Instanz zu finden ist. Mit dem Terminal von Visual Code können inneerhalb des Containers Befehle ausgeführt werden (besonders nützlich für Git).
Sollten Fragen oder Probleme auftreten, können Sie sich gerne direkt an Marc Burchart wenden.