[bitnami/moodle] Release 4.1.8-debian-11-r2 (#55082)

Signed-off-by: Bitnami Containers <bitnami-bot@vmware.com>
This commit is contained in:
Bitnami Bot 2024-01-20 02:15:24 +01:00 committed by GitHub
parent 2019ffa3d5
commit 89de962d39
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 53 additions and 100 deletions

View File

@ -9,10 +9,10 @@ ARG WITH_ALL_LOCALES="no"
LABEL com.vmware.cp.artifact.flavor="sha256:1e1b4657a77f0d47e9220f0c37b9bf7802581b93214fff7d1bd2364c8bf22e8e" \
org.opencontainers.image.base.name="docker.io/bitnami/minideb:bullseye" \
org.opencontainers.image.created="2023-12-24T07:59:09Z" \
org.opencontainers.image.created="2024-01-20T00:11:21Z" \
org.opencontainers.image.description="Application packaged by VMware, Inc" \
org.opencontainers.image.licenses="Apache-2.0" \
org.opencontainers.image.ref.name="4.1.8-debian-11-r1" \
org.opencontainers.image.ref.name="4.1.8-debian-11-r2" \
org.opencontainers.image.title="moodle" \
org.opencontainers.image.vendor="VMware, Inc." \
org.opencontainers.image.version="4.1.8"
@ -27,12 +27,12 @@ SHELL ["/bin/bash", "-o", "errexit", "-o", "nounset", "-o", "pipefail", "-c"]
RUN install_packages acl ca-certificates cron curl libaudit1 libbrotli1 libbsd0 libbz2-1.0 libcap-ng0 libcom-err2 libcrypt1 libcurl4 libedit2 libexpat1 libffi7 libfftw3-double3 libfontconfig1 libfreetype6 libgcc-s1 libgcrypt20 libglib2.0-0 libgmp10 libgnutls30 libgomp1 libgpg-error0 libgssapi-krb5-2 libhogweed6 libicu67 libidn2-0 libjpeg62-turbo libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 liblcms2-2 libldap-2.4-2 liblqr-1-0 libltdl7 liblzma5 libmagickcore-6.q16-6 libmagickwand-6.q16-6 libmd0 libmemcached11 libncurses6 libnettle8 libnghttp2-14 libonig5 libp11-kit0 libpam0g libpcre2-8-0 libpcre3 libpng16-16 libpq5 libpsl5 libreadline8 librtmp1 libsasl2-2 libsodium23 libsqlite3-0 libssh2-1 libssl1.1 libstdc++6 libsybdb5 libtasn1-6 libtidy5deb1 libtinfo6 libunistring2 libuuid1 libwebp6 libx11-6 libxau6 libxcb1 libxdmcp6 libxext6 libxml2 libxslt1.1 libzip4 locales openssl procps zlib1g
RUN mkdir -p /tmp/bitnami/pkg/cache/ ; cd /tmp/bitnami/pkg/cache/ ; \
COMPONENTS=( \
"php-8.1.27-0-linux-${OS_ARCH}-debian-11" \
"php-8.1.27-1-linux-${OS_ARCH}-debian-11" \
"apache-2.4.58-2-linux-${OS_ARCH}-debian-11" \
"postgresql-client-13.13.0-0-linux-${OS_ARCH}-debian-11" \
"mysql-client-11.2.2-0-linux-${OS_ARCH}-debian-11" \
"libphp-8.1.27-0-linux-${OS_ARCH}-debian-11" \
"render-template-1.0.6-4-linux-${OS_ARCH}-debian-11" \
"render-template-1.0.6-5-linux-${OS_ARCH}-debian-11" \
"moodle-4.1.8-0-linux-${OS_ARCH}-debian-11" \
) ; \
for COMPONENT in "${COMPONENTS[@]}"; do \
@ -48,6 +48,7 @@ RUN apt-get autoremove --purge -y curl && \
apt-get update && apt-get upgrade -y && \
apt-get clean && rm -rf /var/lib/apt/lists /var/cache/apt/archives
RUN localedef -c -f UTF-8 -i en_US en_US.UTF-8
RUN find / -perm /6000 -type f -exec chmod a-s {} \; || true
RUN sed -i -e '/pam_loginuid.so/ s/^#*/#/' /etc/pam.d/cron
RUN update-locale LANG=C.UTF-8 LC_MESSAGES=POSIX && \
DEBIAN_FRONTEND=noninteractive dpkg-reconfigure locales

View File

@ -27,7 +27,7 @@
"arch": "amd64",
"distro": "debian-11",
"type": "NAMI",
"version": "8.1.27-0"
"version": "8.1.27-1"
},
"postgresql-client": {
"arch": "amd64",
@ -39,6 +39,6 @@
"arch": "amd64",
"distro": "debian-11",
"type": "NAMI",
"version": "1.0.6-4"
"version": "1.0.6-5"
}
}

View File

@ -10,7 +10,7 @@ fi
script=$1
exit_code="${2:-96}"
fail_if_not_present="${3:-y}"
fail_if_not_present="${3:-n}"
if test -f "$script"; then
sh $script

View File

@ -48,6 +48,7 @@ web_server_validate
ensure_web_server_app_configuration_exists "moodle" --type php --apache-additional-configuration '
RewriteEngine On
RewriteRule ^/phpmyadmin - [L,NC]
RewriteRule "(\/vendor\/)" - [F]
RewriteRule "(\/node_modules\/)" - [F]
RewriteRule "(^|/)\.(?!well-known\/)" - [F]

View File

@ -10,8 +10,7 @@ Disclaimer: The respective trademarks mentioned in the offering are owned by the
## TL;DR
```console
curl -sSL https://raw.githubusercontent.com/bitnami/containers/main/bitnami/moodle/docker-compose.yml > docker-compose.yml
docker-compose up -d
docker run --name moodle bitnami/moodle:latest
```
**Warning**: This quick setup is only intended for development environments. You are encouraged to change the insecure default credentials and check out the available configuration options in the [Environment Variables](#environment-variables) section for a more secure deployment.
@ -67,19 +66,8 @@ docker build -t bitnami/APP:latest .
Moodle&trade; requires access to a MySQL or MariaDB database to store information. We'll use the [Bitnami Docker Image for MariaDB](https://github.com/bitnami/containers/tree/main/bitnami/mariadb) for the database requirements.
### Run the application using Docker Compose
The main folder of this repository contains a functional [`docker-compose.yml`](https://github.com/bitnami/containers/blob/main/bitnami/moodle/docker-compose.yml) file. Run the application using it as shown below:
```console
curl -sSL https://raw.githubusercontent.com/bitnami/containers/main/bitnami/moodle/docker-compose.yml > docker-compose.yml
docker-compose up -d
```
### Using the Docker Command Line
If you want to run the application manually instead of using `docker-compose`, these are the basic steps you need to run:
#### Step 1: Create a network
```console
@ -118,6 +106,17 @@ docker run -d --name moodle \
Access your application at `http://your-ip/`
### Run the application using Docker Compose
```console
curl -sSL https://raw.githubusercontent.com/bitnami/containers/main/bitnami/moodle/docker-compose.yml > docker-compose.yml
docker-compose up -d
```
Please be aware this file has not undergone internal testing. Consequently, we advise its use exclusively for development or testing purposes. For production-ready deployments, we highly recommend utilizing its associated [Bitnami Helm chart](https://github.com/bitnami/charts/tree/main/bitnami/moodle).
If you detect any issue in the `docker-compose.yaml` file, feel free to report it or contribute with a fix by following our [Contributing Guidelines](https://github.com/bitnami/containers/blob/main/CONTRIBUTING.md).
## Persisting your application
If you remove the container all your data will be lost, and the next time you run the image the database will be reinitialized. To avoid this loss of data, you should mount a volume that will persist even after the container is removed.
@ -194,6 +193,37 @@ docker run -d --name moodle \
### Environment variables
#### Customizable environment variables
| Name | Description | Default Value |
|-------------------------------|------------------------------------------------------------------------------------------------------------------------------|------------------------------------|
| `MOODLE_DATA_DIR` | Directory where to store Moodle data files. | `${BITNAMI_VOLUME_DIR}/moodledata` |
| `MOODLE_DATA_TO_PERSIST` | Files to persist relative to the Moodle installation directory. To provide multiple values, separate them with a whitespace. | `$MOODLE_BASE_DIR` |
| `MOODLE_SITE_NAME` | Moodle site name. | `New Site` |
| `MOODLE_CRON_MINUTES` | Moodle cron frequency in minutes. | `1` |
| `MOODLE_REVERSEPROXY` | Activate the reverseproxy feature of Moodle. | `no` |
| `MOODLE_SSLPROXY` | Activate the sslproxy feature of Moodle. | `no` |
| `MOODLE_LANG` | Allow to define default site language | `en` |
| `MOODLE_USERNAME` | Moodle user name. | `user` |
| `MOODLE_PASSWORD` | Moodle user password. | `bitnami` |
| `MOODLE_EMAIL` | Moodle user e-mail address. | `user@example.com` |
| `MOODLE_DATABASE_TYPE` | Database type to be used for the Moodle installation. | `mariadb` |
| `MOODLE_DATABASE_HOST` | Database server host. | `mariadb` |
| `MOODLE_DATABASE_HOST` | Database server host. | `127.0.0.1` |
| `MOODLE_DATABASE_PORT_NUMBER` | Database server port. | `3306` |
| `MOODLE_DATABASE_NAME` | Database name. | `bitnami_moodle` |
| `MOODLE_DATABASE_USER` | Database user name. | `bn_moodle` |
#### Read-only environment variables
| Name | Description | Value |
|------------------------------|------------------------------------------------------------|---------------------------------|
| `MOODLE_BASE_DIR` | Moodle installation directory. | `${BITNAMI_ROOT_DIR}/moodle` |
| `MOODLE_CONF_FILE` | Configuration file for Moodle. | `${MOODLE_BASE_DIR}/config.php` |
| `MOODLE_VOLUME_DIR` | Persisted directory for Moodle files. | `${BITNAMI_VOLUME_DIR}/moodle` |
| `PHP_DEFAULT_MEMORY_LIMIT` | Default PHP memory limit. | `256M` |
| `PHP_DEFAULT_MAX_INPUT_VARS` | Default maximum amount of input variables for PHP scripts. | `5000` |
When you start the Moodle&trade; image, you can adjust the configuration of the instance by passing one or more environment variables either on the docker-compose file or on the `docker run` command line. If you want to add a new environment variable:
* For docker-compose add the variable name and value under the application section in the [`docker-compose.yml`](https://github.com/bitnami/containers/blob/main/bitnami/moodle/docker-compose.yml) file present in this repository:
@ -217,86 +247,7 @@ moodle:
bitnami/moodle:latest
```
Available environment variables:
#### User and Site configuration
* `MOODLE_USERNAME`: Moodle application username. Default: **user**
* `MOODLE_PASSWORD`: Moodle application password. Default: **bitnami**
* `MOODLE_EMAIL`: Moodle application email. Default: **user@example.com**
* `MOODLE_SITE_NAME`: Moodle site name. Default: **New Site**
* `MOODLE_SKIP_BOOTSTRAP`: Do not initialize the Moodle database for a new deployment. This is necessary in case you use a database that already has Moodle data. Default: **no**
* `MOODLE_HOST`: Allows you to configure Moodle's wwwroot feature. Ex: example.com. By default it is a PHP superglobal variable. Default: **$_SERVER['HTTP_HOST']**
* `MOODLE_REVERSEPROXY`: Allows you to activate the reverseproxy feature of Moodle. Default: **no**
* `MOODLE_SSLPROXY`: Allows you to activate the sslproxy feature of Moodle. Default: **no**
* `MOODLE_LANG`: Allows you to set the default site language. Default: **en**
#### Use an existing database
* `MOODLE_DATABASE_TYPE`: Database type. Valid values: *mariadb*, *mysqli*, *pgsql*, *auroramysql*. Default: **mariadb**
* `MOODLE_DATABASE_HOST`: Hostname for database server. Default: **mariadb**
* `MOODLE_DATABASE_PORT_NUMBER`: Port used by database server. Default: **3306**
* `MOODLE_DATABASE_NAME`: Database name that Moodle will use to connect with the database. Default: **bitnami_moodle**
* `MOODLE_DATABASE_USER`: Database user that Moodle will use to connect with the database. Default: **bn_moodle**
* `MOODLE_DATABASE_PASSWORD`: Database password that Moodle will use to connect with the database. No defaults.
* `ALLOW_EMPTY_PASSWORD`: It can be used to allow blank passwords. Default: **no**
#### Create a database for Moodle using mysql-client
* `MYSQL_CLIENT_FLAVOR`: SQL database flavor. Valid values: `mariadb` or `mysql`. Default: **mariadb**.
* `MYSQL_CLIENT_DATABASE_HOST`: Hostname for MariaDB server. Default: **mariadb**
* `MYSQL_CLIENT_DATABASE_PORT_NUMBER`: Port used by MariaDB server. Default: **3306**
* `MYSQL_CLIENT_DATABASE_ROOT_USER`: Database admin user. Default: **root**
* `MYSQL_CLIENT_DATABASE_ROOT_PASSWORD`: Database password for the database admin user. No defaults.
* `MYSQL_CLIENT_CREATE_DATABASE_NAME`: New database to be created by the mysql client module. No defaults.
* `MYSQL_CLIENT_CREATE_DATABASE_USER`: New database user to be created by the mysql client module. No defaults.
* `MYSQL_CLIENT_CREATE_DATABASE_PASSWORD`: Database password for the `MYSQL_CLIENT_CREATE_DATABASE_USER` user. No defaults.
* `MYSQL_CLIENT_CREATE_DATABASE_CHARACTER_SET`: Character set to use for the new database. No defaults.
* `MYSQL_CLIENT_CREATE_DATABASE_COLLATE`: Database collation to use for the new database. No defaults.
* `MYSQL_CLIENT_CREATE_DATABASE_PRIVILEGES`: Database privileges to grant for the user specified in `MYSQL_CLIENT_CREATE_DATABASE_USER` to the database specified in `MYSQL_CLIENT_CREATE_DATABASE_NAME`. No defaults.
* `MYSQL_CLIENT_ENABLE_SSL_WRAPPER`: Whether to force SSL connections to the database via the `mysql` CLI tool. Useful for applications that rely on the CLI instead of APIs. Default: **no**
* `MYSQL_CLIENT_ENABLE_SSL`: Whether to force SSL connections for the database. Default: **no**
* `MYSQL_CLIENT_SSL_CA_FILE`: Path to the SSL CA file for the new database. No defaults
* `MYSQL_CLIENT_SSL_CERT_FILE`: Path to the SSL CA file for the new database. No defaults
* `MYSQL_CLIENT_SSL_KEY_FILE`: Path to the SSL CA file for the new database. No defaults
* `ALLOW_EMPTY_PASSWORD`: It can be used to allow blank passwords. Default: **no**
#### Create a database for Moodle using postgresql-client
* `POSTGRESQL_CLIENT_DATABASE_HOST`: Hostname for the PostgreSQL server. Default: **postgresql**
* `POSTGRESQL_CLIENT_DATABASE_PORT_NUMBER`: Port used by the PostgreSQL server. Default: **5432**
* `POSTGRESQL_CLIENT_POSTGRES_USER`: Database admin user. Default: **root**
* `POSTGRESQL_CLIENT_POSTGRES_PASSWORD`: Database password for the database admin user. No defaults.
* `POSTGRESQL_CLIENT_CREATE_DATABASE_NAMES`: List of new databases to be created by the postgresql-client module. No defaults.
* `POSTGRESQL_CLIENT_CREATE_DATABASE_USER`: New database user to be created by the postgresql-client module. No defaults.
* `POSTGRESQL_CLIENT_CREATE_DATABASE_PASSWORD`: Database password for the `POSTGRESQL_CLIENT_CREATE_DATABASE_USER` user. No defaults.
* `POSTGRESQL_CLIENT_CREATE_DATABASE_EXTENSIONS`: PostgreSQL extensions to enable in the specified database during the first initialization. No defaults.
* `POSTGRESQL_CLIENT_EXECUTE_SQL`: SQL code to execute in the PostgreSQL server. No defaults.
* `ALLOW_EMPTY_PASSWORD`: It can be used to allow blank passwords. Default: **no**
#### SMTP Configuration
To configure Moodle&trade; to send email using SMTP you can set the following environment variables:
* `MOODLE_SMTP_HOST`: SMTP host.
* `MOODLE_SMTP_PORT`: SMTP port.
* `MOODLE_SMTP_USER`: SMTP account user.
* `MOODLE_SMTP_PASSWORD`: SMTP account password.
* `MOODLE_SMTP_PROTOCOL`: SMTP protocol.
#### PHP configuration
* `PHP_ENABLE_OPCACHE`: Enable OPcache for PHP scripts. No default.
* `PHP_EXPOSE_PHP`: Enables HTTP header with PHP version. No default.
* `PHP_MAX_EXECUTION_TIME`: Maximum execution time for PHP scripts. No default.
* `PHP_MAX_INPUT_TIME`: Maximum input time for PHP scripts. No default.
* `PHP_MAX_INPUT_VARS`: Maximum amount of input variables for PHP scripts. No default.
* `PHP_MEMORY_LIMIT`: Memory limit for PHP scripts. Default: **256M**
* `PHP_POST_MAX_SIZE`: Maximum size for PHP POST requests. No default.
* `PHP_UPLOAD_MAX_FILESIZE`: Maximum file size for PHP uploads. No default.
* `PHP_OUTPUT_BUFFERING`: Size of the output buffer for PHP. Default: **8196**
#### Examples
### Examples
This would be an example of SMTP configuration using a Gmail account: