This will build a Docker Image for Moodle, a learning management system.
- Automatically download latest version of Moodle if not installed
- Install Database
- Includes Moosh
- About
- Maintainer
- Table of Contents
- Prerequisites and Assumptions
- Installation
- Configuration
- Maintenance
- Support
- License
- Maintenance
- References
Clone this repository and build the image with docker build <arguments> (imagename) .
Builds of the image are available on Docker Hub and is the recommended method of installation.
docker pull tiredofit/moodle:(imagetag)
The following image tags are available along with their tagged release based on what's written in the Changelog:
PHP version | OS | Tag |
---|---|---|
8.0.x | Alpine | :latest |
Images are built primarily for amd64
architecture, and may also include builds for arm/v7
, arm64
and others. These variants are all unsupported. Consider sponsoring my work so that I can work with various hardware. To see if this image supports multiple architecures, type docker manifest (image):(tag)
-
The quickest way to get started is using docker-compose. See the examples folder for a working docker-compose.yml that can be modified for development or production use.
-
Set various environment variables to understand the capabilities of this image.
-
Map persistent storage for access to configuration and data files for backup.
The following directories are used for configuration and can be mapped for persistent storage.
Directory | Description |
---|---|
/www/moodle |
Root moodle Directory |
/www/data |
Course and other Moodle Data seperate from installation files |
/www/logs |
Nginx and php-fpm logfiles |
This image relies on an Alpine Linux base image that relies on an init system for added capabilities. Outgoing SMTP capabilities are handlded via msmtp
. Individual container performance monitoring is performed by zabbix-agent. Additional tools include: bash
,curl
,less
,logrotate
,nano
,vim
.
Be sure to view the following repositories to understand all the customizable options:
Image | Description |
---|---|
OS Base | Customized Image based on Alpine Linux |
Nginx | Nginx webserver |
PHP-FPM | PHP Interpreter |
Parameter | Description | Default |
---|---|---|
CRON_PERIOD |
Time in minutes to be required to perform inernal maintenance tasks | 15 |
DATA_PATH |
Moodle Data and Course related files | /www/data/ |
DB_HOST |
MariaDB external container hostname (e.g. moodle-db) | |
DB_NAME |
MariaDB database name i.e. (e.g. moodle) | |
DB_USER |
MariaDB username for database (e.g. moodle) | |
DB_PASS |
MariaDB password for database (e.g. userpassword) | |
DB_PORT |
MariaDB Port | 3306 |
Parameter | Description | Default |
---|---|---|
MOODLE_VERSION |
Used to choose what Moodle Installation to install or Upgrade to | Look in Dockerfile |
ADMIN_EMAIL |
Email address for the Administrator | |
ADMIN_USER |
Username for the Administrator | |
ADMIN_PASS |
Password for the Administrator | |
ENABLE_REVERSE_PROXY |
Tweak nginx to run behind a reverse proxy for URLs TRUE / FALSE |
TRUE |
LANGUAGE |
Site Lanaguage | en |
SITE_PORT |
What Port does moodle deliver assets to | 80 |
SITE_NAME |
The title of the Website | `` |
SITE_SHORT_NAME |
The short name of site e.g. example |
`` |
SITE_URL |
The Full site URL of the installation e.g. moodle.example.com |
The following ports are exposed.
Port | Description |
---|---|
80 |
HTTP |
For debugging and maintenance purposes you may want access the containers shell.
docker exec -it (whatever your container name is) bash
These images were built to serve a specific need in a production environment and gradually have had more functionality added based on requests from the community.
- The Discussions board is a great place for working with the community on tips and tricks of using this image.
- Consider sponsoring me personalized support.
- Please, submit a Bug Report if something isn't working as expected. I'll do my best to issue a fix in short order.
- Feel free to submit a feature request, however there is no guarantee that it will be added, or at what timeline.
- Consider sponsoring me regarding development of features.
- Best effort to track upstream changes, More priority if I am actively using the image in a production environment.
- Consider sponsoring me for up to date releases.
MIT. See LICENSE for more details.
For debugging and maintenance purposes you may want access the containers shell.
docker exec -it (whatever your container name is e.g. moodle) bash