Git Product home page Git Product logo

bitnami-docker-moodle's Introduction

In order to unify the approaches followed for Bitnami containers and Bitnami Helm charts, we are moving the different bitnami/bitnami-docker-<container> repositories to a single monorepo bitnami/containers. Please follow bitnami/containers to keep you updated about the latest Bitnami images.

More information here: https://blog.bitnami.com/2022/07/new-source-of-truth-bitnami-containers.html

Bitnami LMS powered by Moodle™ LMS

What is Bitnami LMS powered by Moodle™ LMS?

Moodle™ LMS is an open source online Learning Management System widely used at universities, schools, and corporations. It is modular and highly adaptable to any type of online learning.

Overview of Bitnami LMS powered by Moodle™ LMS

Disclaimer: The respective trademarks mentioned in the offering are owned by the respective companies. We do not provide commercial license of any of these products. This listing has an open source license. Moodle(TM) LMS is run and maintained by Moodle HQ, that is a completely and separate project from Bitnami.

TL;DR

$ curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-moodle/master/docker-compose.yml > docker-compose.yml
$ docker-compose up -d

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 section for a more secure deployment.

Why use Bitnami Images?

  • Bitnami closely tracks upstream source changes and promptly publishes new versions of this image using our automated systems.
  • With Bitnami images the latest bug fixes and features are available as soon as possible.
  • Bitnami containers, virtual machines and cloud images use the same components and configuration approach - making it easy to switch between formats based on your project needs.
  • All our images are based on minideb a minimalist Debian based container image which gives you a small base container image and the familiarity of a leading Linux distribution.
  • All Bitnami images available in Docker Hub are signed with Docker Content Trust (DCT). You can use DOCKER_CONTENT_TRUST=1 to verify the integrity of the images.
  • Bitnami container images are released on a regular basis with the latest distribution packages available.

How to deploy Moodle™ in Kubernetes?

Deploying Bitnami applications as Helm Charts is the easiest way to get started with our applications on Kubernetes. Read more about the installation in the Bitnami Chart for Moodle™ GitHub repository.

Bitnami containers can be used with Kubeapps for deployment and management of Helm Charts in clusters.

Supported tags and respective Dockerfile links

Learn more about the Bitnami tagging policy and the difference between rolling tags and immutable tags in our documentation page.

Subscribe to project updates by watching the bitnami/moodle GitHub repo.

Get this image

The recommended way to get the Bitnami Docker Image for Moodle™ is to pull the prebuilt image from the Docker Hub Registry.

$ docker pull bitnami/moodle:latest

To use a specific version, you can pull a versioned tag. You can view the list of available versions in the Docker Hub Registry.

$ docker pull bitnami/moodle:[TAG]

If you wish, you can also build the image yourself.

$ docker build -t bitnami/moodle:latest 'https://github.com/bitnami/bitnami-docker-moodle.git#master:4/debian-11'

How to use this image

Moodle™ requires access to a MySQL or MariaDB database to store information. We'll use the Bitnami Docker Image for MariaDB for the database requirements.

Run the application using Docker Compose

The main folder of this repository contains a functional docker-compose.yml file. Run the application using it as shown below:

$ curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-moodle/master/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

$ docker network create moodle-network

Step 2: Create a volume for MariaDB persistence and create a MariaDB container

$ docker volume create --name mariadb_data
$ docker run -d --name mariadb \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env MARIADB_USER=bn_moodle \
  --env MARIADB_PASSWORD=bitnami \
  --env MARIADB_DATABASE=bitnami_moodle \
  --network moodle-network \
  --volume mariadb_data:/bitnami/mariadb \
  bitnami/mariadb:latest

Step 3: Create volumes for Moodle™ persistence and launch the container

$ docker volume create --name moodle_data
$ docker run -d --name moodle \
  -p 8080:8080 -p 8443:8443 \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env MOODLE_DATABASE_USER=bn_moodle \
  --env MOODLE_DATABASE_PASSWORD=bitnami \
  --env MOODLE_DATABASE_NAME=bitnami_moodle \
  --network moodle-network \
  --volume moodle_data:/bitnami/moodle \
  bitnami/moodle:latest

Access your application at http://your-ip/

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.

For persistence you should mount a directory at the /bitnami/moodle path. If the mounted directory is empty, it will be initialized on the first run. Additionally you should mount a volume for persistence of the MariaDB data](https://github.com/bitnami/bitnami-docker-mariadb#persisting-your-database).

The above examples define the Docker volumes named mariadb_data and moodle_data. The Moodle™ application state will persist as long as volumes are not removed.

To avoid inadvertent removal of volumes, you can mount host directories as data volumes. Alternatively you can make use of volume plugins to host the volume data.

Mount host directories as data volumes with Docker Compose

This requires a minor change to the docker-compose.yml file present in this repository:

   mariadb:
     ...
     volumes:
-      - 'mariadb_data:/bitnami/mariadb'
+      - /path/to/mariadb-persistence:/bitnami/mariadb
   ...
   moodle:
     ...
     volumes:
-      - 'moodle_data:/bitnami/moodle'
+      - /path/to/moodle-persistence:/bitnami/moodle
   ...
-volumes:
-  mariadb_data:
-    driver: local
-  moodle_data:
-    driver: local

Mount host directories as data volumes using the Docker command line

Step 1: Create a network (if it does not exist)

$ docker network create moodle-network

Step 2. Create a MariaDB container with host volume

$ docker run -d --name mariadb \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env MARIADB_USER=bn_moodle \
  --env MARIADB_PASSWORD=bitnami \
  --env MARIADB_DATABASE=bitnami_moodle \
  --network moodle-network \
  --volume /path/to/mariadb-persistence:/bitnami/mariadb \
  bitnami/mariadb:latest

Step 3. Create the Moodle™ container with host volumes

$ docker run -d --name moodle \
  -p 8080:8080 -p 8443:8443 \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env MOODLE_DATABASE_USER=bn_moodle \
  --env MOODLE_DATABASE_PASSWORD=bitnami \
  --env MOODLE_DATABASE_NAME=bitnami_moodle \
  --network moodle-network \
  --volume /path/to/moodle-persistence:/bitnami/moodle \
  bitnami/moodle:latest

Configuration

Environment variables

When you start the Moodle™ 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 file present in this repository:
moodle:
  ...
  environment:
    - MOODLE_PASSWORD=my_password
  ...
  • For manual execution add a --env option with each variable and value:
$ docker run -d --name moodle -p 80:8080 -p 443:8443 \
  --env MOODLE_PASSWORD=my_password \
  --network moodle-tier \
  --volume /path/to/moodle-persistence:/bitnami \
  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: [email protected]
  • 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
Use an existing database
  • MOODLE_DATABASE_TYPE: Database type. Valid values: mariadb, mysqli, pgsql. 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™ 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.
Examples

This would be an example of SMTP configuration using a Gmail account:

  • Modify the docker-compose.yml file present in this repository:

    moodle:
      ...
      environment:
        - MOODLE_DATABASE_USER=bn_moodle
        - MOODLE_DATABASE_NAME=bitnami_moodle
        - ALLOW_EMPTY_PASSWORD=yes
        - MOODLE_SMTP_HOST=smtp.gmail.com
        - MOODLE_SMTP_PORT=587
        - [email protected]
        - MOODLE_SMTP_PASSWORD=your_password
        - MOODLE_SMTP_PROTOCOL=tls
    ...
  • For manual execution:

    $ docker run -d --name moodle -p 80:8080 -p 443:8443 \
      --env MOODLE_DATABASE_USER=bn_moodle \
      --env MOODLE_DATABASE_NAME=bitnami_moodle \
      --env MOODLE_SMTP_HOST=smtp.gmail.com \
      --env MOODLE_SMTP_PORT=587 \
      --env [email protected] \
      --env MOODLE_SMTP_PASSWORD=your_password \
      --env MOODLE_SMTP_PROTOCOL=tls \
      --network moodle-tier \
      --volume /path/to/moodle-persistence:/bitnami \
      bitnami/moodle:latest

This would be an instance ready to be put behind the NGINX load balancer.

  • Modify the docker-compose.yml file present in this repository:

    moodle:
      ...
      environment:
        - MOODLE_HOST=example.com
        - MOODLE_REVERSEPROXY=true
        - MOODLE_SSLPROXY=true
    ...
  • For manual execution:

    $ docker run -d --name moodle -p 80:8080 -p 443:8443 \
      --env MOODLE_HOST=example.com \
      --env MOODLE_REVERSEPROXY=true \
      --env MOODLE_SSLPROXY=true \
      --network moodle-tier \
      --volume /path/to/moodle-persistence:/bitnami \
      bitnami/moodle:latest

Installing additional language packs

By default, this container packs a generic English version of Moodle™. Nevertheless, more Language Packs can be added to the default configuration using the in-platform Administration interface. In order to fully support a new Language Pack it is also a requirement to update the system's locales files. To do that, you have several options:

Build the default image with the EXTRA_LOCALES build-time variable

You can add extra locales using the EXTRA_LOCALES build-time variable when building the Docker image. The values must be separated by commas or semicolons (and optional spaces), and refer to entries in the /usr/share/i18n/SUPPORTED file inside the container.

For example, the following value would add French, German, Italian and Spanish, you would specify the following value in EXTRA_LOCALES:

fr_FR.UTF-8 UTF-8, de_DE.UTF-8 UTF-8, it_IT.UTF-8 UTF-8, es_ES.UTF-8 UTF-8

NOTE: The locales en_AU.UTF-8 UTF-8 and en_US.UTF-8 UTF-8 will always be packaged, defaulting to en_US.UTF-8 UTF-8.

To use EXTRA_LOCALES, you have two options:

  • Modify the docker-compose.yml file present in this repository:

    moodle:
    ...
      # image: 'bitnami/moodle:4' # remove this line !
      build:
        context: .
        dockerfile: Dockerfile
        args:
          - EXTRA_LOCALES=fr_FR.UTF-8 UTF-8, de_DE.UTF-8 UTF-8, it_IT.UTF-8 UTF-8, es_ES.UTF-8 UTF-8
    ...
  • For manual execution, clone the repository and run the following command inside the 4/debian-11 directory:

    $ docker build -t bitnami/moodle:latest --build-arg EXTRA_LOCALES="fr_FR.UTF-8 UTF-8, de_DE.UTF-8 UTF-8, it_IT.UTF-8 UTF-8, es_ES.UTF-8 UTF-8" .

Enable all supported locales using the WITH_ALL_LOCALES build-time variable

You can generate all supported locales by setting the build environment variable WITH_ALL_LOCALES=yes. Note that the generation of all the locales takes some time.

To use WITH_ALL_LOCALES, you have two options:

  • Modify the docker-compose.yml file present in this repository:

    moodle:
    ...
      # image: 'bitnami/moodle:4' # remove this line !
      build:
        context: .
        dockerfile: Dockerfile
        args:
          - WITH_ALL_LOCALES=yes
    ...
  • For manual execution, clone the repository and run the following command inside the 4/debian-11 directory:

    $ docker build -t bitnami/moodle:latest --build-arg WITH_ALL_LOCALES=yes .

Extending the default image

Finally, you can extend the default image and adding as many locales as needed:

FROM bitnami/moodle
RUN echo "es_ES.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen

Bear in mind that in the example above es_ES.UTF-8 UTF-8 is the locale needed for the desired Language Pack to install. You may change this value to the locale corresponding to your pack.

Logging

The Bitnami Docker image for Moodle™ sends the container logs to stdout. To view the logs:

$ docker logs moodle

Or using Docker Compose:

$ docker-compose logs moodle

You can configure the containers logging driver using the --log-driver option if you wish to consume the container logs differently. In the default configuration docker uses the json-file driver.

Maintenance

Backing up your container

To backup your data, configuration and logs, follow these simple steps:

Step 1: Stop the currently running container

$ docker stop moodle

Or using Docker Compose:

$ docker-compose stop moodle

Step 2: Run the backup command

We need to mount two volumes in a container we will use to create the backup: a directory on your host to store the backup in, and the volumes from the container we just stopped so we can access the data.

$ docker run --rm -v /path/to/moodle-backups:/backups --volumes-from moodle busybox \
  cp -a /bitnami/moodle /backups/latest

Restoring a backup

Restoring a backup is as simple as mounting the backup as volumes in the containers.

For the MariaDB database container:

 $ docker run -d --name mariadb \
   ...
-  --volume /path/to/mariadb-persistence:/bitnami/mariadb \
+  --volume /path/to/mariadb-backups/latest:/bitnami/mariadb \
   bitnami/mariadb:latest

For the Moodle™ container:

 $ docker run -d --name moodle \
   ...
-  --volume /path/to/moodle-persistence:/bitnami/moodle \
+  --volume /path/to/moodle-backups/latest:/bitnami/moodle \
   bitnami/moodle:latest

Upgrade this image

NOTE: Since Moodle(TM) 3.4.0-r1, the application upgrades should be done manually inside the docker container following the official documentation. As an alternative, you can try upgrading using an updated Docker image. However, any data from the Moodle(TM) container will be lost and you will have to reinstall all the plugins and themes you manually added.

Bitnami provides up-to-date versions of MariaDB and Moodle™, including security patches, soon after they are made upstream. We recommend that you follow these steps to upgrade your container. We will cover here the upgrade of the Moodle™ container. For the MariaDB upgrade see: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#upgrade-this-image

Step 1: Get the updated image

$ docker pull bitnami/moodle:latest

Step 2: Stop the running container

Stop the currently running container using the command

$ docker-compose stop moodle

Step 3: Take a snapshot of the application state

Follow the steps in Backing up your container to take a snapshot of the current application state.

Step 4: Remove the currently running container

Remove the currently running container by executing the following command:

docker-compose rm -v moodle

Step 5: Run the new image

Update the image tag in docker-compose.yml and re-create your container with the new image:

$ docker-compose up -d

Customize this image

The Bitnami Docker image for Moodle™ is designed to be extended so it can be used as the base image for your custom web applications.

Extend this image

Before extending this image, please note there are certain configuration settings you can modify using the original image:

If your desired customizations cannot be covered using the methods mentioned above, extend the image. To do so, create your own image using a Dockerfile with the format below:

FROM bitnami/moodle
## Put your customizations below
...

Here is an example of extending the image with the following modifications:

  • Install the vim editor
  • Modify the Apache configuration file
  • Modify the ports used by Apache
FROM bitnami/moodle

## Install 'vim'
RUN install_packages vim

## Enable mod_ratelimit module
RUN sed -i -r 's/#LoadModule ratelimit_module/LoadModule ratelimit_module/' /opt/bitnami/apache/conf/httpd.conf

## Modify the ports used by Apache by default
# It is also possible to change these environment variables at runtime
ENV APACHE_HTTP_PORT_NUMBER=8181
ENV APACHE_HTTPS_PORT_NUMBER=8143
EXPOSE 8181 8143

Based on the extended image, you can update the docker-compose.yml file present in this repository to add other features:

   moodle:
-    image: bitnami/moodle:latest
+    build: .
     ports:
-      - '80:8080'
-      - '443:8443'
+      - '80:8181'
+      - '443:8143'
     environment:
       ...
+      - PHP_MEMORY_LIMIT=512m
     ...

Notable Changes

3.9.0-debian-10-r17

  • The size of the container image has been decreased.
  • The configuration logic is now based on Bash scripts in the rootfs/ folder.
  • The Moodle™ container now supports the "non-root" user approach, but it still runs as the root user by default. When running as a non-root user, all services will be run under the same user and Cron jobs will be disabled as crond requires to be run as a superuser. To run as a non-root user, change USER root to USER 1001 in the Dockerfile, or specify user: 1001 in docker-compose.yml. Related changes:
    • The HTTP/HTTPS ports exposed by the container are now 8080/8443 instead of 80/443.
    • Backwards compatibility is not guaranteed when data is persisted using docker or docker-compose. We highly recommend migrating the Moodle™ site by exporting its content, and importing it on a new Moodle™ container.

3.7.1-debian-9-r38 and 3.7.1-ol-7-r40

  • It is now possible to use existing Moodle™ databases from other installations, as requested in #95. In order to do this, use the environment variable MOODLE_SKIP_INSTALL, which forces the container not to run the initial Moodle™ setup wizard.

3.7.0-debian-9-r12 and 3.7.0-ol-7-r13

  • This image has been adapted so it's easier to customize. See the Customize this image section for more information.
  • The Apache configuration volume (/bitnami/apache) has been deprecated, and support for this feature will be dropped in the near future. Until then, the container will enable the Apache configuration from that volume if it exists. By default, and if the configuration volume does not exist, the configuration files will be regenerated each time the container is created. Users wanting to apply custom Apache configuration files are advised to mount a volume for the configuration at /opt/bitnami/apache/conf, or mount specific configuration files individually.
  • The PHP configuration volume (/bitnami/php) has been deprecated, and support for this feature will be dropped in the near future. Until then, the container will enable the PHP configuration from that volume if it exists. By default, and if the configuration volume does not exist, the configuration files will be regenerated each time the container is created. Users wanting to apply custom PHP configuration files are advised to mount a volume for the configuration at /opt/bitnami/php/conf, or mount specific configuration files individually.
  • Enabling custom Apache certificates by placing them at /opt/bitnami/apache/certs has been deprecated, and support for this functionality will be dropped in the near future. Users wanting to enable custom certificates are advised to mount their certificate files on top of the preconfigured ones at /certs.

Contributing

We'd love for you to contribute to this container. You can request new features by creating an issue, or submit a pull request with your contribution.

Issues

If you encountered a problem running this container, you can file an issue. Be sure to include the following information in your issue:

  • Host OS and version
  • Docker version (docker version)
  • Output of docker info
  • Version of this container
  • The command you used to run the container, and any relevant output you saw (masking any sensitive information)

Community supported solution

Please, note this asset is a community-supported solution. This means that the Bitnami team is not actively working on new features/improvements nor providing support through GitHub Issues. Any new issue will stay open for 20 days to allow the community to contribute, after 15 days without activity the issue will be marked as stale being closed after 5 days.

The Bitnami team will review any PR that is created, feel free to create a PR if you find any issue or want to implement a new feature.

New versions and releases cadence are not going to be affected. Once a new version is released in the upstream project, the Bitnami container image will be updated to use the latest version, supporting the different branches supported by the upstream project as usual.

License

Copyright © 2022 Bitnami

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

bitnami-docker-moodle's People

Contributors

alexandertang avatar andresbono avatar bitnami-bot avatar carrodher avatar dani8art avatar fatiiates avatar fortiz2305 avatar giliomeejg avatar jmurphyq avatar juan131 avatar maltris avatar maxkratz avatar migmartri avatar miguelaeh avatar nrctkno avatar polyrand avatar prydonius avatar sbaerlocher avatar sebgoa avatar soriyath avatar tompizmor avatar vikram-bitnami avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bitnami-docker-moodle's Issues

Q : how to add smtp environment variables after containers are running ?

Hi, I launched moodle via docker-compose and tried to set-up the smtp via the moodle interface but it seems that the container can't reach the smtp server (google).
Would it work if I set up the environement variables ? If so, how do I set up those environment variables after I have launched those containers ?

Thank's for your help :)

Persistent docker-compose failing without `sudo`

Description

The script hangs after I run docker-compose up on ` MySQL server listening and working at mariadb:3306.

This issue occurs when I try to use the suggested configuration for a persistent docker image, and after I fix the permission error for the MariaDB folder.

Steps to reproduce the issue:

  1. Create the docker-compose.yml file based on the example in the README file.
  2. Change /path/to/... variables to my local directories (/home/myuser/moodle/db and /home/myuser/moodle/data)
  3. Change the owner of the db directory to 1001 to avoid the permission issue.
  4. Run docker-compose up

Describe the results you received:

The script executes successfully up until the line indicated above and hangs:

moodle_1   | mysql-c INFO  MySQL server listening and working at mariadb:3306

Describe the results you expected:

I expected it to continue to the next few lines:

moodle_1   | moodle  INFO  Configuring Cron Jobs...
moodle_1   | moodle  INFO
moodle_1   | moodle  INFO  ########################################################################
moodle_1   | moodle  INFO   Installation parameters for moodle:
moodle_1   | moodle  INFO     Persisted data and properties have been restored.
moodle_1   | moodle  INFO     Any input specified will not take effect.
moodle_1   | moodle  INFO   This installation requires no credentials.
moodle_1   | moodle  INFO  ########################################################################
moodle_1   | moodle  INFO
moodle_1   | nami    INFO  moodle successfully initialized
moodle_1   | INFO  ==> Starting moodle...
moodle_1   |

Additional information you deem important (e.g. issue happens only occasionally):

This issue happens every time.

Version

  • Output of docker version:
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        e68fc7a
 Built:             Tue Aug 21 17:23:18 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       e68fc7a
  Built:            Tue Aug 21 17:22:21 2018
  OS/Arch:          linux/amd64
  Experimental:     false```

- Output of `docker info`:

Containers: 2
Running: 2
Paused: 0
Stopped: 0
Images: 3
Server Version: 18.06.1-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 4.9.0-7-amd64
Operating System: Debian GNU/Linux 9 (stretch)
OSType: linux
Architecture: x86_64
CPUs: 12
Total Memory: 15.61GiB
Name: ultimatehome
ID: VBDM:2HCG:AGG3:UJJ2:O6IB:AVI4:DCHC:AGGU:R7U7:3RPU:WTIY:L55H
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

WARNING: No swap limit support```

  • Output of docker-compose version (if applicable):
docker-compose version 1.22.0, build f46880f
docker-py version: 3.5.0
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.1.0f  25 May 2017```

**Additional environment details (AWS, VirtualBox, Docker for MAC, physical, etc.):**
I am using `docker` with `sudo` and `docker-compose` without.

I can only proceed if I prefix `docker-compose` with `sudo`, which is something I have read you shouldn't do.

moodle on NFS volume

BUG REPORT
I have logged all the details here: helm/charts#1439

All products are up to date, docker is 1.12.6

It is working fine in any other version of volumes, but not on NFS.
I see volumes are properly mounted and populated with moodle files.

Did anyone use it on NFS? Is it working ?

mysqlCore.checkConnection is not a function

application service does not start. It exits with error code 1, with the next message:

mariadb_1 | harpoon INFO Initializing mariadb
application_1 | harpoon INFO Initializing apache
application_1 | harpoon INFO apache successfully initialized
application_1 | harpoon INFO Initializing moodle
application_1 | Error executing 'postInstallation': mysqlCore.checkConnection is not a function
bitnamidockermoodle310r1_application_1 exited with code 1

It happens with docker-compose up, with the next docker-compose.yml:

version: '2'
services:
mariadb:
image: 'bitnami/mariadb:latest'
volumes:
- 'mariadb_data:/bitnami/mariadb'
application:
image: 'bitnami/moodle:latest'
ports:
- '80:80'
- '443:443'
volumes:
- 'moodle_data:/bitnami/moodle'
- 'apache_data:/bitnami/apache'
depends_on:
- mariadb
volumes:
mariadb_data:
driver: local
moodle_data:
driver: local
apache_data:
driver: local

More info:
Host OS and version: CentOS 7
Docker version 1.12.1, build 23cf638
Output of docker info:


Containers: 2
Running: 1
Paused: 0
Stopped: 1
Images: 2
Server Version: 1.12.1
Storage Driver: devicemapper
Pool Name: docker-202:2-33594523-pool
Pool Blocksize: 65.54 kB
Base Device Size: 10.74 GB
Backing Filesystem: xfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 1.343 GB
Data Space Total: 107.4 GB
Data Space Available: 15.69 GB
Metadata Space Used: 2.675 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.145 GB
Thin Pool Minimum Free Space: 10.74 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Deferred Deletion Enabled: false
Deferred Deleted Device Count: 0
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
WARNING: Usage of loopback devices is strongly discouraged for production use. Use --storage-opt dm.thinpooldev to specify a custom block storage device.
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.107-RHEL7 (2016-06-09)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: null host bridge overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 3.10.0-327.28.3.el7.x86_64
Operating System: Red Hat Enterprise Linux Server 7.2 (Maipo)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 991.6 MiB
Name: ip-172-31-22-63.eu-west-1.compute.internal
ID: ZM6B:CIUC:T5KG:WZXQ:EXXP:UYXA:7ZVA:WMJL:HLSY:DUY3:FFDX:7SYA
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Insecure Registries:
127.0.0.0/8


Version of this container (echo $BITNAMI_APP_VERSION inside the container): can't start the container.

Adding WWWROOT ENV variable

The official config-dist.php contains a section for providing the website location for moodle. This is important when serving moodle from behind a firewall or reverse proxy(for example /moodle/.

It would be useful to have it as an environmental variable that inserts the constant show below when the config.php is being created in docker-entrypoint.sh

//=========================================================================
// 2. WEB SITE LOCATION
//=========================================================================
// Now you need to tell Moodle where it is located. Specify the full
// web address to where moodle has been installed.  If your web site
// is accessible via multiple URLs then choose the most natural one
// that your students would use.  Do not include a trailing slash
//
// If you need both intranet and Internet access please read
// http://docs.moodle.org/en/masquerading
$CFG->wwwroot   = 'http://example.com/moodle';

https://github.com/moodle/moodle/blob/master/config-dist.php#L76-L87

WWW_ROOT would be my recommendation

I tried to look through the source code and couldn't find how you guys are inserting the env variables into the config.php. If you can point me in the right direction I'll submit a PR

[question] Why opcache.enable = Off ?

Description

In /opt/bitnami/php/conf/php.ini, Bitnami sets opcache.enable = Off

I wonder why this is the case, since having opcode caching enabled seems a good idea for performance reasons. It should be default unless the user wants to turn it off (by extending the Dockerfile).

Steps to reproduce the issue:

Run bitnami/moodle:latest

Upgrade persistence

Hello,

I wanted to get some Infos about the Intend of making the whole /bitnami folder persistent.

Because for a production Environment, this breaks proper upgrading of the whole Application.
On the readme, it's written that for the upgrade to succeed, the Volume needs to get removed. (I understand why.)

But why don't you persist the Data of Moodle that actually need to be persistent (e.g. moodle_data, mod, themes) instead of the whole applications?

I just want to understand why this approach was taken.

Would really appreciate an answer to understand this a whole lot better.

Moodle fails to start with "Error executing 'postInstallation'"

Description
Unable to start using docker-compose. MariaDB starts successfully, but moodle exists with Error executing 'postInstallation'.

Steps to reproduce the issue:

  1. run docker-compose up -d

Describe the results you received:

Moodle is unavailable in the browser and inspecting the logs reveals that moodle exited.

Describe the results you expected:

Moodle to start and become available.

Additional information you deem important (e.g. issue happens only occasionally):

Relevant logs

moodle_1   | Welcome to the Bitnami moodle container
moodle_1   | Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-moodle
moodle_1   | Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-moodle/issues
moodle_1   | Send us your feedback at [email protected]
moodle_1   | 
moodle_1   | nami    INFO  Initializing moodle
moodle_1   | mysql-c INFO  Trying to connect to MySQL server
moodle_1   | mysql-c INFO  Found MySQL server listening at mariadb:3306
moodle_1   | mysql-c INFO  MySQL server listening and working at mariadb:3306
moodle_1   | Error executing 'postInstallation': Program exited with exit code 1

Version

  • Output of docker version:
Client:
 Version:      17.03.1-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Tue Mar 28 00:40:02 2017
 OS/Arch:      darwin/amd64

Server:
 Version:      17.03.1-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Fri Mar 24 00:00:50 2017
 OS/Arch:      linux/amd64
 Experimental: true
  • Output of docker info:
Containers: 15
 Running: 1
 Paused: 0
 Stopped: 14
Images: 109
Server Version: 17.03.1-ce
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 242
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 4ab9917febca54791c5f071a9d1f404867857fcc
runc version: 54296cf40ad8143b62dbcaa1d90e520a2136ddfe
init version: N/A (expected: 949e6facb77383876aeff8a6944dde66b3089574)
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.13-moby
Operating System: Alpine Linux v3.5
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 1.952 GiB
Name: moby
ID: ZITF:NLOM:FKR4:PDXT:D4ES:IFIK:6AN4:3XEK:GMRL:MM3K:5QRY:XT5L
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 26
 Goroutines: 36
 System Time: 2017-05-11T17:45:54.335034283Z
 EventsListeners: 2
No Proxy: *.local, 169.254/16
Username: mkalish
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
  • Output of docker-compose version (if applicable):
docker-compose version 1.11.2, build dfed245
docker-py version: 2.1.0
CPython version: 2.7.12
OpenSSL version: OpenSSL 1.0.2j  26 Sep 2016

Additional environment details (AWS, VirtualBox, Docker for MAC, physical, etc.):
Running on OSX El Capitan

Permission deny at trying to provide persistence

Description

I just create a new CentOs 7 VM on VMWare Workstation
When I make all by default all is going ok ...
But, after I change the docker-compose.yml file -> volume section, from default value to a new directory created within my CentOS home directory
volumes:
- '/home/baxli/moodle/mariadb_data:/bitnami'

I receive
- The "Error executing 'postInstallation': EACCES: permission denied, mkdir 'bitnami/mariadb'"
i compare the permissions on mariadb_data and moodle_data created by default and change it at the directories within my home
$ ls -ld *
-rw-rwxrwx. 1 baxli baxli 494 Jan 7 15:31 docker-compose.yml
drwxr-xr-x. 2 root root 6 Jan 7 15:32 mariadb_data
drwxr-xr-x. 5 root root 45 Jan 7 15:32 moodle_data

I'm tried to add user 1001 and add it to root group.
No changes.

Steps to reproduce the issue:

  1. install as per non-persistence.
  2. Create a directory moodle within your home directory
  3. Change volume section to point to this just-created dir.
  4. run docker-compose up
  5. enjoy :(
  • Output of docker version:
$ docker version
Client:
 Version:       17.12.0-ce
 API version:   1.35
 Go version:    go1.9.2
 Git commit:    c97c6d6
 Built: Wed Dec 27 20:10:14 2017
 OS/Arch:       linux/amd64

Server:
 Engine:
  Version:      17.12.0-ce
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.9.2
  Git commit:   c97c6d6
  Built:        Wed Dec 27 20:12:46 2017
  OS/Arch:      linux/amd64
  Experimental: false

  • Output of docker info:
$ docker info
Containers: 4
 Running: 2
 Paused: 0
 Stopped: 2
Images: 3
Server Version: 17.12.0-ce
Storage Driver: overlay2
 Backing Filesystem: xfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 89623f28b87a6004d4b785663257362d1658a729
runc version: b2567b37d7b75eb4cf325b77297b140ea686ce8f
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-693.11.6.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.916GiB
Name: localhost.localdomain
ID: 5ENV:6RXU:6RJR:2HVN:B6VD:5KUI:IBJK:P7BS:6WXG:VQXZ:NU6D:CHER
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

  • Output of docker-compose version (if applicable):
$ docker-compose version
docker-compose version 1.18.0, build 8dd22a9
docker-py version: 2.7.0
CPython version: 2.7.5
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013

Additional environment details (AWS, VirtualBox, Docker for MAC, physical, etc.):
VMWare workstation.
hostnamectl
Static hostname: localhost.localdomain
Icon name: computer-vm
Chassis: vm
Machine ID: e947d15562ac42248c5313e9a0a7d48e
Boot ID: bea28b01cdc44b18857923cb6042b716
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-693.11.6.el7.x86_64
Architecture: x86-64

Caching modules not enabled in PHP

It doesn't look like any of the caching modules have been installed in PHP. In the cache configuration section of moodle you are not able to add any instances for Memcached or Redis or any other caching modules. Is there something I am missing? I have installed Moodle locally and these are available but not using the container version of Moodle or the helm package.

Will Not Install for Azure Database for MySQL PaaS

The installer starts but ends abruptly with an obtuse error. It appears that it provisions the database but none of the tables. I wonder if this has anything to do with Azure's strange convention that requires a user to have @server_name appended to the connection? Because the error is so vague, I can't troubleshoot it further.

Steps to reproduce the issue:

  1. Create docker container as normal (per this documentation); example:
docker run -d --name moodle -p 80:80 -p 443:443 \
  -e MYSQL_CLIENT_CREATE_DATABASE_NAME=moodle \
  -e MYSQL_CLIENT_CREATE_DATABASE_USER=moodle \
  -e MYSQL_CLIENT_CREATE_DATABASE_PASSWORD=password1234 \
  -e MARIADB_HOST=shareddevdb.mysql.database.azure.com \
  -e MOODLE_DATABASE_USER=mysql-admin@shareddevdb \
  -e MOODLE_DATABASE_PASSWORD=*************** \
  -e MARIADB_ROOT_PASSWORD=*************** \
  -e MARIADB_ROOT_USER=mysql-admin@shareddevdb \
  -e MOODLE_DATABASE_NAME=moodle \
  --net moodle-tier \
  --volume moodle_data:/bitnami \
  bitnami/moodle:latest
  1. Include environment variables that point at Azure Database for MySQL host
  2. Log the docker container and watch it fail.

Describe the results you received:

nami INFO Initializing apache
apache INFO ==> Reconfiguring PID file location...
apache INFO ==> Configuring dummy certificates...
nami INFO apache successfully initialized
nami INFO Initializing php
nami INFO php successfully initialized
nami INFO Initializing mysql-client
mysql-c INFO Trying to connect to MySQL server
mysql-c INFO Found MySQL server listening at shareddevdb.mysql.database.azure.com:3306
mysql-c INFO MySQL server listening and working at shareddevdb.mysql.database.azure.com:3306
mysql-c INFO ==> Creating database moodle...
mysql-c INFO ==> Granting access to moodle to the database moodle...
mysql-c INFO
mysql-c INFO ########################################################################
mysql-c INFO Installation parameters for mysql-client:
mysql-c INFO Database User created: moodle
mysql-c INFO Database Name created: moodle
mysql-c INFO Database Password created: **********
mysql-c INFO Database Host: shareddevdb.mysql.database.azure.com
mysql-c INFO Database Port: 3306
mysql-c INFO Database Root User: mysql-dev-admin@shareddevdb
mysql-c INFO Database Root Password: **********
mysql-c INFO (Passwords are not shown for security reasons)
mysql-c INFO
########################################################################
mysql-c INFO
nami INFO mysql-client successfully initialized
nami INFO Initializing libphp
nami INFO libphp successfully initialized
nami INFO Initializing moodle
mysql-c INFO Trying to connect to MySQL server
mysql-c INFO Found MySQL server listening at shareddevdb.mysql.database.azure.com:3306
mysql-c INFO MySQL server listening and working at shareddevdb.mysql.database.azure.com:3306
moodle INFO Running Moodle install. Please be patient...
Error executing 'postInstallation': Program exited with exit code 1

Describe the results you expected:

When I run this against a server that isn't Azure Database for MySQL (such as at docker.for.mac.localhost against a running MAMP Pro MySQL instance), the install completes as desired, the container remains operational, and Moodle will load

Additional information you deem important (e.g. issue happens only occasionally):

This is the same error I receive when I use the Helm Chart. Likely for the same root cause.

Version

  • Output of docker version:
Client: Docker Engine - Community
 Version:           18.09.0
 API version:       1.39
 Go version:        go1.10.4
 Git commit:        4d60db4
 Built:             Wed Nov  7 00:47:43 2018
 OS/Arch:           darwin/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.0
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.4
  Git commit:       4d60db4
  Built:            Wed Nov  7 00:55:00 2018
  OS/Arch:          linux/amd64
  Experimental:     true
  • Output of docker info:
Containers: 22
 Running: 21
 Paused: 0
 Stopped: 1
Images: 54
Server Version: 18.09.0
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.125-linuxkit
Operating System: Docker for Mac
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.952GiB
Name: linuxkit-025000000001
ID: NTFM:3O4T:I7RG:25PC:CTSJ:6I6X:KRCB:3GXF:CKRS:4FFY:OEHL:67JU
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 140
 Goroutines: 141
 System Time: 2018-12-10T15:16:56.2447274Z
 EventsListeners: 2
HTTP Proxy: gateway.docker.internal:3128
HTTPS Proxy: gateway.docker.internal:3129
Registry: https://index.docker.io/v1/
Labels:
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine

How to install SSL certificates on Moodle since 3.7.0-debian-9-r12 and 3.7.0-ol-7-r13

I have a question regarding how to install custom SSL certificates on my running Moodle instance. It is not clear to me how I should mount the certificate, since placing them at /opt/bitnami/apache/certs became deprecated. I generated my certificate using Zerossl and place them in a seperate folder /home/apache-certs. The documentation only explains how to deploy a new Apache container and add the certificates with a -v flag. Could you share a concrete code example to show how to do this for a running Moodle container?

My Moodle container was created like this:
docker volume create --name moodle_data
docker run -d --name moodle -p 80:80 -p 443 \
-e MOODLE_DATABASE_USER=bn_moodle \
-e MOODLE_DATABASE_NAME=bitnami_moodle \
--net moodle-tier --volume moodle_data:/bitnami bitnami/moodle:latest

Thank you for any help! I have been using Bitnami Moodle for the past two years and it has been great!

STARTTLS failed - LDAPS with IPA server

Unable to connect to IPA server via 636 port / LDAPS. IPA server uses Let's encrypt trusted certificate

Steps to reproduce the issue:

  1. Deploy moodle using docker compose
  2. Setup with 389 port (everything is fine here)
  3. Change LDAP server to ldaps://

Describe the results you received:

Scheduled task failed: LDAP users sync job (auth_ldap\task\sync_task),LDAP-module cannot connect to any servers: Server: 'ipa.local.net', Connection: 'Resource id #608', STARTTLS failed.

Deferentially not a network issue.

Should I mount something like this?

/etc/ldap/ldap.conf:

TLS_REQCERT never

Describe the results you expected:

Successful LDAPS connection.

Additional information you deem important (e.g. issue happens only occasionally):

Version

Latest version of image, docker and docker-compose.

Moodle 3.7+ vs 3.7 in container

More of a support/feature request than an issue. I'm new to Moodle, and this image, so please excuse me if I'm missing something obvious. Also, a thank-you for this image, it made getting started with Moodle super simple!

Description

I'm wanting to clarify the version of Moodle in the Docker image, best I can tell it's 3.7 (looking at /bitnami/moodle/version.php). Looking at the downloads page, they are now suggesting it's better to run v3.7+ in production (https://download.moodle.org/releases/latest/). My request is; are you able to make a release/tag that includes the 3.7+ release? I see that the docker image is built regularly, so hopefully it would be an easy step to include this as one of the builds.

I have had a quick look and putting in a PR, but most of the magic appears to be in the Bitnami scripts, and at this stage I don't have an understanding of how all of that ties together.

Thanks!

Cannot add volume linked to /opt/bitnami/moodle

Description

Hello, I have a running container created from your great bitnami-docker-moodle image (using Docker for Windows). My goal is to develop a new moodle plugin inside the container for portability, but I can't add a volume linked to /opt/bitnami/moodle where the moodle core files are. Is this possible? I am a newbie with docker containers, please help me.

I tried these steps from stackoverflow http://stackoverflow.com/questions/28302178/how-can-i-add-a-volume-to-an-existing-docker-container

Steps to reproduce the issue:

  1. [First Step]
    docker commit moodle moodle2develop

  2. [Second Step]
    docker run -d -p 80:80 -p 443:443 --network moodle-tier
    -v "D:\pathto\persistance\apache":/bitnami/apache
    -v "D:\pathto\persistance\php":/bitnami/php
    -v "D:\pathto\persistance\moodle":/bitnami/moodle
    -v "D:\pathto\moodlesite":/opt/bitnami/moodle moodle2develop

Describe the results you received:

Accesing to localhost returns "Forbidden. You don't have permission to access / on this server."
and the folder "D:\pathto\moodlesite" is empty

Describe the results you expected:
I expected Moodle to be running normally as it did before I added the
"/opt/bitnami/moodle" volume and also I expected that folder "D:\pathto\moodlesite" shows moodle root files and folders.

Additional information you deem important (e.g. issue happens only occasionally):

Version

  • Output of docker version:
Client:
 Version:      17.03.1-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Tue Mar 28 00:40:02 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.03.1-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Fri Mar 24 00:00:50 2017
 OS/Arch:      linux/amd64
 Experimental: true
  • Output of docker info:
Containers: 3
 Running: 2
 Paused: 0
 Stopped: 1
Images: 4
Server Version: 17.03.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 4ab9917febca54791c5f071a9d1f404867857fcc
runc version: 54296cf40ad8143b62dbcaa1d90e520a2136ddfe
init version: N/A (expected: 949e6facb77383876aeff8a6944dde66b3089574)
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.13-moby
Operating System: Alpine Linux v3.5
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.934 GiB
Name: moby
ID: OD7Y:6SQM:6CBP:COHY:KYOL:UKHO:OSPT:TEVQ:IV47:KOXE:UMJN:QEXO
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 400
 Goroutines: 392
 System Time: 2017-04-26T18:53:39.2671133Z
 EventsListeners: 11
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
  • Output of docker-compose version (if applicable):
(paste your output here)

Additional environment details (AWS, VirtualBox, Docker for MAC, physical, etc.):
Docker for Windows, Windows 10

docker-compose instance works once, fails on second run

Description

Am trying to run Moodle from docker-compose on a Company AWS site. On the first run, it correctly configures the database, and I can connect to the server. On the second time I try and run it, I can't connect to the server I get a 500 error

Steps to reproduce the issue:

  1. configure docker-compose.yaml
  2. docker-compose up
  3. ^C (only once)
  4. docker-compose up

Describe the results you received:

The first run succeeds, and I can login to web server as user "admin". But on trying to run it again, I can no longer connect to the web server

Describe the results you expected:

I expect the moodle server to be connectable more than once

Version

  • Output of docker version:
Client:
 Version:           18.06.0-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        0ffa825
 Built:             Wed Jul 18 19:08:18 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.0-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       0ffa825
  Built:            Wed Jul 18 19:10:42 2018
  OS/Arch:          linux/amd64
  Experimental:     false
  • Output of docker info:
Containers: 5
 Running: 0
 Paused: 0
 Stopped: 5
Images: 3
Server Version: 18.06.0-ce
Storage Driver: overlay2
 Backing Filesystem: xfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: d64c661f1d51c48782c9cec8fda7604785f93587
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-862.6.3.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.7GiB
Name: XXXXXXXXXXXX
ID: VYHI:24SS:VA4J:VXFB:YM5H:GIHN:QHCC:YNTQ:FZU5:XR7V:5KEM:TV4L
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
  • Output of docker-compose version (if applicable):
docker-compose version 1.22.0, build f46880fe
docker-py version: 3.4.1
CPython version: 3.6.6
OpenSSL version: OpenSSL 1.1.0f  25 May 2017

Additional environment details (AWS, VirtualBox, Docker for MAC, physical, etc.):

  • Contents of docker-compose.yml
version: '2'

services:

  # as we want to run docker-compose as user "moodle" but it's volume gets
  # created by user "root" so we need to change the ownership so its sets
  # correctly. We have to use the raw uid, as the container doesn't know
  # user moodle
  fix-mariadb-volume-ownership:
    image: 'bitnami/mariadb:latest'
    user: root
    command: chown -R 1001:1001 /bitnami
    volumes:
      - ${MARIADB_LOCAL_DATA_FOLDER}:/bitnami
  fix-moodle-volume-ownership:
    image: 'bitnami/mariadb:latest'
    user: root
    command: chown -R 1001:1001 /bitnami
    volumes:
      - ${MOODLE_LOCAL_DATA_FOLDER}:/bitnami

  # Database
  mariadb:
    image: 'bitnami/mariadb:latest'
    environment:
      - MARIADB_DATABASE=${MARIADB_DATABASE}
      - MARIADB_USER=${MARIADB_USER}
      - MARIADB_PASSWORD=${MARIADB_USER_PASSWORD}
      - MARIADB_ROOT_USER=${MARIADB_ROOT_USER}
      - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
      # ALLOW_EMPTY_PASSWORD is recommended only for development.
    volumes:
      - ${MARIADB_LOCAL_DATA_FOLDER}:/bitnami
    #ports:
    #  - '3306:3306'
    #command:
    #  - chown -R - 1001:1001 /bitnami
    depends_on:
      - fix-mariadb-volume-ownership

  moodle:
    image: 'bitnami/moodle:latest'
    environment:
      - NAME_DEBUG=1
      # Database
      - MARIADB_HOST=mariadb
      - MARIADB_PORT_NUMBER=3306
      - MARIADB_ROOT_USER=${MARIADB_ROOT_USER}
      - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}

      - MOODLE_DATABASE_NAME=${MARIADB_DATABASE}
      - MOODLE_DATABASE_PASSWORD=${MARIADB_USER_PASSWORD}
      - MOODLE_DATABASE_USER=${MARIADB_USER}
      - [email protected]
      - MOODLE_SITENAME=SyngentaMoodleTest

      - MYSQL_CLIENT_CREATE_DATABASE_NAME=${MARIADB_DATABASE}
      - MYSQL_CLIENT_CREATE_DATABASE_PASSWORD=${MARIADB_ROOT_PASSWORD}
      - MYSQL_CLIENT_CREATE_DATABASE_USER=${MARIADB_ROOT_USER}

      # User and Site Configuration
      - MOODLE_USERNAME=${MOODLE_USERNAME}
      - MOODLE_PASSWORD=${MOODLE_PASSWORD}
    labels:
      kompose.service.type: nodeport
    ports:
      - '80:80'
      - '443:443'
    volumes:
      - ${MOODLE_LOCAL_DATA_FOLDER}:/bitnami
    depends_on:
      - fix-moodle-volume-ownership
      - mariadb

volumes:
  mariadb_data:
    driver: local
  moodle_data:
    driver: local

Log of initial start-up

[12:45|moodle@deawilmlmp001:/moodle]$ docker-compose up
Creating network "moodle_default" with the default driver
Creating moodle_fix-moodle-volume-ownership_1  ... done
Creating moodle_fix-mariadb-volume-ownership_1 ... done
Creating moodle_mariadb_1                      ... done
Creating moodle_moodle_1                       ... done
Attaching to moodle_fix-mariadb-volume-ownership_1, moodle_fix-moodle-volume-ownership_1, moodle_mariadb_1, moodle_moodle_1
fix-mariadb-volume-ownership_1  |
fix-mariadb-volume-ownership_1  | Welcome to the Bitnami mariadb container
fix-mariadb-volume-ownership_1  | Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-mariadb
fix-mariadb-volume-ownership_1  | Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-mariadb/issues
fix-mariadb-volume-ownership_1  |
moodle_fix-mariadb-volume-ownership_1 exited with code 0
fix-moodle-volume-ownership_1   |
fix-moodle-volume-ownership_1   | Welcome to the Bitnami mariadb container
fix-moodle-volume-ownership_1   | Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-mariadb
fix-moodle-volume-ownership_1   | Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-mariadb/issues
fix-moodle-volume-ownership_1   |
moodle_fix-moodle-volume-ownership_1 exited with code 0
mariadb_1                       |
mariadb_1                       | Welcome to the Bitnami mariadb container
mariadb_1                       | Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-mariadb
mariadb_1                       | Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-mariadb/issues
mariadb_1                       |
moodle_1                        |
moodle_1                        | Welcome to the Bitnami moodle container
moodle_1                        | Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-moodle
moodle_1                        | Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-moodle/issues
moodle_1                        |
mariadb_1                       | nami    INFO  Initializing mariadb
mariadb_1                       | mariadb INFO  ==> Cleaning data dir...
mariadb_1                       | mariadb INFO  ==> Configuring permissions...
mariadb_1                       | mariadb INFO  ==> Validating inputs...
mariadb_1                       | mariadb INFO  ==> Initializing database...
moodle_1                        | nami    INFO  Initializing apache
moodle_1                        | apache  INFO  ==> Patching httpoxy...
moodle_1                        | nami    INFO  apache successfully initialized
moodle_1                        | nami    INFO  Initializing php
moodle_1                        | nami    INFO  php successfully initialized
moodle_1                        | nami    INFO  Initializing mysql-client
mariadb_1                       | mariadb INFO  ==> Creating 'dbadmin' user with unrestricted access...
mariadb_1                       | mariadb INFO  ==> Creating database moodle...
mariadb_1                       | mariadb INFO  ==> Creating user moodle...
mariadb_1                       | mariadb INFO  ==> Granting access to moodle to the database moodle...
mariadb_1                       | mariadb INFO
mariadb_1                       | mariadb INFO  ########################################################################
mariadb_1                       | mariadb INFO   Installation parameters for mariadb:
mariadb_1                       | mariadb INFO     Root User: dbadmin
mariadb_1                       | mariadb INFO     Root Password: **********
mariadb_1                       | mariadb INFO     Database: moodle
mariadb_1                       | mariadb INFO     Username: moodle
mariadb_1                       | mariadb INFO     Password: **********
mariadb_1                       | mariadb INFO   (Passwords are not shown for security reasons)
mariadb_1                       | mariadb INFO  ########################################################################
mariadb_1                       | mariadb INFO
mariadb_1                       | nami    INFO  mariadb successfully initialized
mariadb_1                       | INFO  ==> Starting mariadb...
mariadb_1                       | INFO  ==> Starting mysqld_safe.....
mariadb_1                       | 180809 12:48:04 mysqld_safe Logging to '/opt/bitnami/mariadb/logs/mysqld.log'.
mariadb_1                       | 180809 12:48:04 mysqld_safe Starting mysqld daemon with databases from /opt/bitnami/mariadb/data
moodle_1                        | mysql-c INFO  Trying to connect to MySQL server
moodle_1                        | mysql-c INFO  Found MySQL server listening at mariadb:3306
moodle_1                        | mysql-c INFO  MySQL server listening and working at mariadb:3306
moodle_1                        | mysql-c INFO  ==> Found database moodle. Skipping database creation...
moodle_1                        | nami    INFO  mysql-client successfully initialized
moodle_1                        | nami    INFO  Initializing moodle
moodle_1                        | mysql-c INFO  Trying to connect to MySQL server
moodle_1                        | mysql-c INFO  Found MySQL server listening at mariadb:3306
moodle_1                        | mysql-c INFO  MySQL server listening and working at mariadb:3306
moodle_1                        | moodle  INFO  Configuring Cron Jobs...
moodle_1                        | moodle  INFO
moodle_1                        | moodle  INFO  ########################################################################
moodle_1                        | moodle  INFO   Installation parameters for moodle:
moodle_1                        | moodle  INFO     Username: admin
moodle_1                        | moodle  INFO     Password: **********
moodle_1                        | moodle  INFO     Email: [email protected]
moodle_1                        | moodle  INFO   (Passwords are not shown for security reasons)
moodle_1                        | moodle  INFO  ########################################################################
moodle_1                        | moodle  INFO
moodle_1                        | nami    INFO  moodle successfully initialized
moodle_1                        | INFO  ==> Starting moodle...
moodle_1                        |
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:23 +0000] "GET / HTTP/1.1" 200 7005
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:24 +0000] "GET /theme/styles.php/boost/1533818934_1533818958/all HTTP/1.1" 200 111215
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:24 +0000] "GET /theme/image.php/boost/core/1533818934/moodlelogo HTTP/1.1" 200 2297
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:24 +0000] "GET /lib/javascript.php/1533818934/lib/requirejs/require.min.js HTTP/1.1" 200 6531
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:24 +0000] "GET /lib/javascript.php/1533818934/lib/javascript-static.js HTTP/1.1" 200 6748
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:25 +0000] "GET /theme/yui_combo.php?m/1533818934/core/event/event-min.js&m/1533818934/filter_mathjaxloader/loader/loader-min.js HTTP/1.1" 200 825
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:25 +0000] "GET /theme/font.php/boost/core/1533818934/fontawesome-webfont.woff2?v=4.7.0 HTTP/1.1" 200 77160
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:25 +0000] "GET /lib/requirejs.php/1533818934/core/first.js HTTP/1.1" 200 159607
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:25 +0000] "GET /lib/javascript.php/1533818934/lib/jquery/jquery-3.2.1.min.js HTTP/1.1" 200 30081
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:26 +0000] "POST /lib/ajax/service.php?sesskey=ygSMtdFNaK&info=core_fetch_notifications HTTP/1.1" 200 243
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:26 +0000] "GET /theme/image.php/boost/theme/1533818934/favicon HTTP/1.1" 200 1150
moodle_1                        | 127.0.0.1 - - [09/Aug/2018:12:51:27 +0000] "OPTIONS * HTTP/1.0" 200 -
moodle_1                        | 127.0.0.1 - - [09/Aug/2018:12:51:32 +0000] "OPTIONS * HTTP/1.0" 200 -

Stopping

^CGracefully stopping... (press Ctrl+C again to force)
Stopping moodle_moodle_1                       ... done
Stopping moodle_mariadb_1                      ... done

Thjen restarting

[12:53|moodle@deawilmlmp001:/moodle]$ docker-compose up
Starting moodle_fix-mariadb-volume-ownership_1 ... done
Starting moodle_fix-moodle-volume-ownership_1  ... done
Starting moodle_mariadb_1                      ... done
Starting moodle_moodle_1                       ... done
Attaching to moodle_fix-mariadb-volume-ownership_1, moodle_fix-moodle-volume-ownership_1, moodle_mariadb_1, moodle_moodle_1
fix-mariadb-volume-ownership_1  |
fix-mariadb-volume-ownership_1  | Welcome to the Bitnami mariadb container
fix-mariadb-volume-ownership_1  | Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-mariadb
fix-mariadb-volume-ownership_1  | Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-mariadb/issues
fix-mariadb-volume-ownership_1  |
fix-moodle-volume-ownership_1   |
fix-moodle-volume-ownership_1   | Welcome to the Bitnami mariadb container
fix-moodle-volume-ownership_1   | Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-mariadb
fix-moodle-volume-ownership_1   | Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-mariadb/issues
fix-moodle-volume-ownership_1   |
moodle_fix-mariadb-volume-ownership_1 exited with code 0
mariadb_1                       |
mariadb_1                       | Welcome to the Bitnami mariadb container
mariadb_1                       | Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-mariadb
mariadb_1                       | Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-mariadb/issues
mariadb_1                       |
moodle_fix-moodle-volume-ownership_1 exited with code 0
moodle_1                        |
moodle_1                        | Welcome to the Bitnami moodle container
moodle_1                        | Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-moodle
moodle_1                        | Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-moodle/issues
moodle_1                        |
mariadb_1                       | INFO  ==> Starting mariadb...
mariadb_1                       | INFO  ==> Starting mysqld_safe.....
mariadb_1                       | 180809 12:53:33 mysqld_safe Logging to '/opt/bitnami/mariadb/logs/mysqld.log'.
mariadb_1                       | 180809 12:53:33 mysqld_safe Starting mysqld daemon with databases from /opt/bitnami/mariadb/data
moodle_1                        | INFO  ==> Starting moodle...
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:24 +0000] "GET /lib/javascript.php/1533818934/lib/requirejs/require.min.js HTTP/1.1" 200 6531
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:24 +0000] "GET /lib/javascript.php/1533818934/lib/javascript-static.js HTTP/1.1" 200 6748
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:25 +0000] "GET /theme/yui_combo.php?m/1533818934/core/event/event-min.js&m/1533818934/filter_mathjaxloader/loader/loader-min.js HTTP/1.1" 200 825
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:25 +0000] "GET /theme/font.php/boost/core/1533818934/fontawesome-webfont.woff2?v=4.7.0 HTTP/1.1" 200 77160
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:25 +0000] "GET /lib/requirejs.php/1533818934/core/first.js HTTP/1.1" 200 159607
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:25 +0000] "GET /lib/javascript.php/1533818934/lib/jquery/jquery-3.2.1.min.js HTTP/1.1" 200 30081
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:26 +0000] "POST /lib/ajax/service.php?sesskey=ygSMtdFNaK&info=core_fetch_notifications HTTP/1.1" 200 243
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:51:26 +0000] "GET /theme/image.php/boost/theme/1533818934/favicon HTTP/1.1" 200 1150
moodle_1                        | 127.0.0.1 - - [09/Aug/2018:12:51:27 +0000] "OPTIONS * HTTP/1.0" 200 -
moodle_1                        | 127.0.0.1 - - [09/Aug/2018:12:51:32 +0000] "OPTIONS * HTTP/1.0" 200 -
moodle_1                        | 172.28.131.99 - - [09/Aug/2018:12:53:51 +0000] "GET / HTTP/1.1" 500 -

and finally, you see my next connection fail

Investigating further

[12:58|moodle@deawilmlmp001:/moodle]$ docker-compose exec moodle tail -f /opt/bitnami/apache/logs/{access,error}_log
==> /opt/bitnami/apache/logs/access_log <==
172.28.131.99 - - [09/Aug/2018:12:51:24 +0000] "GET /lib/javascript.php/1533818934/lib/javascript-static.js HTTP/1.1" 200 6748
172.28.131.99 - - [09/Aug/2018:12:51:25 +0000] "GET /theme/yui_combo.php?m/1533818934/core/event/event-min.js&m/1533818934/filter_mathjaxloader/loader/loader-min.js HTTP/1.1" 200 825
172.28.131.99 - - [09/Aug/2018:12:51:25 +0000] "GET /theme/font.php/boost/core/1533818934/fontawesome-webfont.woff2?v=4.7.0 HTTP/1.1" 200 77160
172.28.131.99 - - [09/Aug/2018:12:51:25 +0000] "GET /lib/requirejs.php/1533818934/core/first.js HTTP/1.1" 200 159607
172.28.131.99 - - [09/Aug/2018:12:51:25 +0000] "GET /lib/javascript.php/1533818934/lib/jquery/jquery-3.2.1.min.js HTTP/1.1" 200 30081
172.28.131.99 - - [09/Aug/2018:12:51:26 +0000] "POST /lib/ajax/service.php?sesskey=ygSMtdFNaK&info=core_fetch_notifications HTTP/1.1" 200 243
172.28.131.99 - - [09/Aug/2018:12:51:26 +0000] "GET /theme/image.php/boost/theme/1533818934/favicon HTTP/1.1" 200 1150
127.0.0.1 - - [09/Aug/2018:12:51:27 +0000] "OPTIONS * HTTP/1.0" 200 -
127.0.0.1 - - [09/Aug/2018:12:51:32 +0000] "OPTIONS * HTTP/1.0" 200 -
172.28.131.99 - - [09/Aug/2018:12:53:51 +0000] "GET / HTTP/1.1" 500 -

==> /opt/bitnami/apache/logs/error_log <==
[Thu Aug 09 12:50:17.507626 2018] [core:notice] [pid 118] AH00094: Command line: '/opt/bitnami/apache/bin/httpd -f /opt/bitnami/apache/conf/httpd.conf'
[Thu Aug 09 12:53:39.653842 2018] [ssl:warn] [pid 64] AH01909: localhost:443:0 server certificate does NOT include an ID which matches the server name
[Thu Aug 09 12:53:39.654207 2018] [ssl:warn] [pid 64] AH01909: localhost:443:0 server certificate does NOT include an ID which matches the server name
[Thu Aug 09 12:53:39.686284 2018] [ssl:warn] [pid 66] AH01909: localhost:443:0 server certificate does NOT include an ID which matches the server name
[Thu Aug 09 12:53:39.686634 2018] [ssl:warn] [pid 66] AH01909: localhost:443:0 server certificate does NOT include an ID which matches the server name
[Thu Aug 09 12:53:39.695575 2018] [core:warn] [pid 66] AH00098: pid file /opt/bitnami/apache/tmp/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Thu Aug 09 12:53:39.698070 2018] [mpm_prefork:notice] [pid 66] AH00163: Apache/2.4.34 (Unix) OpenSSL/1.1.0f PHP/7.1.20 configured -- resuming normal operations
[Thu Aug 09 12:53:39.698114 2018] [core:notice] [pid 66] AH00094: Command line: '/opt/bitnami/apache/bin/httpd -f /opt/bitnami/apache/conf/httpd.conf'
[Thu Aug 09 12:53:51.232392 2018] [php7:warn] [pid 67] [client 172.28.131.99:49266] PHP Warning:  require_once(/bitnami/moodle/config.php): failed to open stream: Permission denied in /bitnami/moodle/index.php on line 30
[Thu Aug 09 12:53:51.232463 2018] [php7:error] [pid 67] [client 172.28.131.99:49266] PHP Fatal error:  require_once(): Failed opening required 'config.php' (include_path='.:/opt/bitnami/php/lib/php') in /bitnami/moodle/index.php on line 30

address already in use

How can i fix this error?: Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use

I have repeated the installation 5 times and i always receive the same error, why?
I dont know how fix it, im new using GCE and kubernetes, help please :(

first run default compose: Unable to start com.bitnami.mariadb: Cannot find pid file

I installed debian 9 server and docker and try to run first container.
I try to start docker-compose default compose file from https://hub.docker.com/r/bitnami/moodle/
with command
docker-compose --project-name moodle1 -f docker-compose.yml up or
docker-compose up
Console output is:

<downloading, unpacking...>
....
moodle_1   | nami    INFO  Initializing php
moodle_1   | nami    INFO  php successfully initialized
moodle_1   | nami    INFO  Initializing moodle
moodle_1   | mysql-c INFO  Trying to connect to MySQL server
mariadb_1  | Error executing 'postInstallation': Unable to start com.bitnami.mariadb: Cannot find pid file '/opt/bitnami/mariadb/tmp/mysqld.pid'.: Cannot find pid file '/opt/bitnami/mariadb/tmp/mysqld.pid'.
root_mariadb_1 exited with code 1

Wait some minutes

moodle_1   | Error executing 'postInstallation': Failed to connect to mariadb:3306 after 36 tries
root_moodle_1 exited with code 1

Should I configure some parameters in default compose before any start?
While it wait and try to "connect to MySQL" docker ps show this:

root@moodle:~# docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                                      NAMES
45f103bf9804        bitnami/moodle:latest    "/app-entrypoint.s..."   2 minutes ago       Up 2 minutes        0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   root_moodle_1
2d19b620c854        bitnami/mariadb:latest   "/app-entrypoint.s..."   2 minutes ago       Up 2 minutes        3306/tcp                                   root_mariadb_1

Steps to reproduce the issue:

  1. apt-get install docker-compose
  2. curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-moodle/master/docker-compose.yml > docker-compose.yml
  3. docker-compose up

Nothing more, all by default.

All containers stopped with error after some minutes.

Container must run with some default parameters without errors and listen on network.

Additional information you deem important (e.g. issue happens only occasionally):

  • Output of docker version:
Client:
 Version:      17.09.0-ce
 API version:  1.32
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:42:09 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.09.0-ce
 API version:  1.32 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:40:48 2017
 OS/Arch:      linux/amd64
 Experimental: false
  • Output of docker info:
Containers: 5
 Running: 0
 Paused: 0
 Stopped: 5
Images: 3
Server Version: 17.09.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
...
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.0-4-amd64
Operating System: Debian GNU/Linux 9 (stretch)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 492.6MiB
Name: moodle
ID: D4EZ:OJIM:AKZ3:CYN3:RJYB:CS7C:CEDL:FMQX:YCE7:LDLN:VTIN:537U
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
  • Output of docker-compose version:
docker-compose version 1.8.0, build unknown
docker-py version: 1.9.0
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.1.0f  25 May 2017

Additional environment details (AWS, VirtualBox, Docker for MAC, physical, etc.):

KVM virtual machine in cloud provider service.

Docker-compose - what am I missing?

I try to install moodle via docker-compose on a digital ocean droplet.

I am using a docker droplet 18.06.1 on 18.04
I added a user and this user to the sudoers
I downloaded the docker-compose.yml file and changed the volumes to persistent by prepending "~/docker/" to each volume, like:

  • '~/docker/mariadb_data:/bitnami'

sudo docker-compose up -d

sudo docker-compose ps
Name Command State Ports

ronald_mariadb_1 /entrypoint.sh /run.sh Exit 1
ronald_moodle_1 /app-entrypoint.sh /run.sh Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp

going to the web site (IP address) http://xx.xx.xx.xx brings up "unable to connect"

What am I missing?

Cant upload files of more than 1M (error 413)

Description

I've tried to upload a 1M file but filepicker keeps loading for ever and then gives server error.
I've changed upload_max_filesize = 40M and post_max_size = 40M in php/conf/php.ini and reset the apache. I can see in /admin/phpinfo.php the new max size but still cant upload files of more than 1M

Im running moodle moodle:3.4.2 in docker.

When uploading a 1,5M file chrome throws error 413 but I don't know how to solve it

docker & moodle --> Upgade?

Hi. I downloaded the bitnami/docker-image to use moodle via docker. The
idea is great but I don't understand the upgrade strategy.
On
https://github.com/bitnami/bitnami-docker-moodle#upgrade-this-application

you write that the upgrade should be done inside the container?! I
don't see the advantage of an always-up-to-date-docker container if I
have to upgrade the files inside of it manually again!? Can you explain
it once more?

The next problem:
When I use "docker pull bitnami/moodle:latest" I can download an
up-to-date-image but when I login to moodle there is no system option to
start the upgrade inside the WebGUI?! Is it the wrong container? There's
just a system message like "Newer moodle-version available" but noting else.

Thanks for information.
Michael

How to migrate Moodle and MariaDB containers to a new host

Description

Has anyone tried to migrate a Moodle and MariaDB container to a different host? Which steps should I take to migrate the user and application data successfully? I haven't done this before and am a bit anxious that this will not go as planned. I used the standard recommended method for persisting my data in volumes. Any help or guidance is much appreciated!

permission denied, mkdir '/bitnami/apache/conf'

Description

docker-compose up fails at postInstallation

Steps to reproduce the issue:

  1. curl -LO https://raw.githubusercontent.com/bitnami/bitnami-docker-moodle/master/docker-compose.yml
  2. docker-compose up

Describe the results you received:

Exit 1

Describe the results you expected:

Exit 0

Additional information you deem important (e.g. issue happens only occasionally):

[thijs@#localhost moodle]$ docker-compose up
Creating network "moodle_default" with the default driver
Creating volume "moodle_php_data" with local driver
Creating volume "moodle_moodle_data" with local driver
Creating volume "moodle_apache_data" with local driver
Creating volume "moodle_mariadb_data" with local driver
Creating moodle_mariadb_1 ... 
Creating moodle_mariadb_1 ... done
Creating moodle_moodle_1 ... 
Creating moodle_moodle_1 ... done
Attaching to moodle_mariadb_1, moodle_moodle_1
mariadb_1  | 
mariadb_1  | Welcome to the Bitnami mariadb container
mariadb_1  | Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-mariadb
mariadb_1  | Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-mariadb/issues
mariadb_1  | Send us your feedback at [email protected]
mariadb_1  | 
mariadb_1  | WARN  ==> You set the environment variable ALLOW_EMPTY_PASSWORD=yes. For safety reasons, do not use this flag in a production environment.
moodle_1   | 
moodle_1   | Welcome to the Bitnami moodle container
moodle_1   | Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-moodle
moodle_1   | Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-moodle/issues
moodle_1   | Send us your feedback at [email protected]
moodle_1   | 
mariadb_1  | nami    INFO  Initializing mariadb
mariadb_1  | mariadb INFO  ==> Configuring permissions...
mariadb_1  | mariadb INFO  ==> Validating inputs...
mariadb_1  | mariadb WARN  Allowing the "rootPassword" input to be empty
mariadb_1  | mariadb INFO  ==> Initializing database...
moodle_1   | nami    INFO  Initializing apache
moodle_1   | apache  INFO  ==> Patching httpoxy...
moodle_1   | Error executing 'postInstallation': EACCES: permission denied, mkdir '/bitnami/apache/conf'
moodle_moodle_1 exited with code 1
mariadb_1  | Error executing 'postInstallation': 2017-05-18 12:21:46 140088490399616 [Note] /opt/bitnami/mariadb/sbin/mysqld (mysqld 10.1.23-MariaDB) starting as process 63 ...
mariadb_1  | 
moodle_mariadb_1 exited with code 1

Version

Client:
 Version:      17.03.1-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Mon Mar 27 17:05:44 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.1-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Mon Mar 27 17:05:44 2017
 OS/Arch:      linux/amd64
 Experimental: false
  • Output of docker info:
Containers: 3
 Running: 1
 Paused: 0
 Stopped: 2
Images: 6
Server Version: 17.03.1-ce
Storage Driver: overlay
 Backing Filesystem: extfs
 Supports d_type: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 4ab9917febca54791c5f071a9d1f404867857fcc
runc version: 54296cf40ad8143b62dbcaa1d90e520a2136ddfe
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
 selinux
Kernel Version: 3.10.0-514.16.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.702 GiB
Name: #localhost.localdomain
ID: HKCJ:F2JS:4QXV:HB7M:32JV:3AAS:MMGB:NGVV:7QNZ:3OGG:ZAM4:RCKR
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

  • Output of docker-compose version (if applicable):
docker-compose version 1.13.0, build 1719ceb
docker-py version: 2.2.1
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t  3 May 2016

uname
Linux #localhost.localdomain 3.10.0-514.16.1.el7.x86_64 #1 SMP Wed Apr 12 15:04:24 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

OS
centos-release-7-3.1611.el7.centos.x86_64

container moodle from compose file is down after some time

Hi
I am trying to start the moodle from docker-compose and always receive the error
moodle_1 | mysql-c ERROR [canConnect] Connection with 'bn_moodle' user is unsuccessful

More logs:
mariadb_1 | INFO ==> Starting mariadb...
mariadb_1 | INFO ==> Starting mysqld_safe...
mariadb_1 | 170725 21:17:00 mysqld_safe Logging to '/opt/bitnami/mariadb/logs/mysqld.log'.
mariadb_1 | 170725 21:17:00 mysqld_safe Starting mysqld daemon with databases from /opt/bitnami/mariadb/data
moodle_1 | nami INFO Initializing apache
moodle_1 | apache INFO ==> Reconfiguring PID file location...
moodle_1 | nami INFO apache successfully initialized
moodle_1 | nami INFO Initializing php
moodle_1 | nami INFO php successfully initialized
moodle_1 | nami INFO Initializing moodle
moodle_1 | mysql-c INFO Trying to connect to MySQL server
moodle_1 | mysql-c INFO Found MySQL server listening at mariadb:3306
moodle_1 | mysql-c ERROR [canConnect] Connection with 'bn_moodle' user is unsuccessful
moodle_1 | mysql-c ERROR [canConnect] Connection with 'bn_moodle' user is unsuccessful
moodle_1 | mysql-c ERROR [canConnect] Connection with 'bn_moodle' user is unsuccessful
moodle_1 | mysql-c ERROR [canConnect] Connection with 'bn_moodle' user is unsuccessful
moodle_1 | mysql-c ERROR [canConnect] Connection with 'bn_moodle' user is unsuccessful
moodle_1 | Error executing 'postInstallation': Cannot connect to MySQL server:
moodle_1 | MySQL command failed to run. Error:
moodle_1 | ERROR 1045 (28000): Access denied for user 'bn_moodle'@'172.18.0.3' (using password: YES)
moodle_1 |
bitnamidockermoodle_moodle_1 exited with code 1

Install on qnap container station

Description

Steps to reproduce the issue:

  1. [First Step]
  2. [Second Step]
  3. [and so on...]

Describe the results you received:

Describe the results you expected:

Additional information you deem important (e.g. issue happens only occasionally):

Version

  • Output of docker version:
(paste your output here)
  • Output of docker info:
(paste your output here)
  • Output of docker-compose version (if applicable):
(paste your output here)

Additional environment details (AWS, VirtualBox, Docker for MAC, physical, etc.):

Unable to connect to AWS RDS database Moodle ECS cluster

Description

I am unable to get the bitnami/moodle Docker container to connect to an AWS RDS database.
The database has the correct configuration, as far as I can make out and I am able to connect to it from the Moodle container but Moodle itself always dies. It looks like it is having problems when Moodle is initializing, during nami_initialize moodle but I could be wrong about that.

The ECS cluster has Moodle running with the standard 80 and 443 ports open, running in a Bridge network that has access to the database cluster. I'm pretty sure the AWS side of the equation is set up correctly but the way I'm configuring Moodle must not be correct, is my guess.

Spinning up Moodle and the Maria DB image from Bitnami is as easy as a docker-compose up command but when I attempt to swap out Maria for the connection information to the remote database I get the same issue; The bootup script(s) seem to run fine until it works on the Moodle install/initialize/startup process.

Steps to reproduce the issue:
Run locally(L) or on an ECS cluster(C)

  1. $ curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-moodle/master/docker-compose.yml > docker-compose.yml
  2. L. Comment out the Maria container and replace the values for the environment variables with the configuration for your RDS cluster, in step
    C. Create an ECS cluster that has a security group that can access the RDS cluster you build
  3. Create an Aurora RDS cluster that uses MySQL for its engine and that lives in the same security group as the ECS cluster.
  4. L. Replace the config in the docker-compose.yml file from step 1 with the values you get from your database cluster in step 2.
    C. Create an ECS Task that uses the bitnami/moodle image and has all the environment variables filled out. It needs a Volume which I gave a host path of /usr/local/bitnami and the container path is /bitnami.
  5. L. Run docker-compose up
    C. Create an ECS Service that runs the task from step 3. This will start it up automatically and re-run it, if it's failing.
  6. Watch the logs...

Describe the results you received:

The task is started up and successfully initializes Apache, PHP and MySQL. It then tries to initialize Moodle. It looks like the first steps for the Moodle script are to set up the database because the next lines in the log are mysql-c related. After what appears to be a successful authentication process, it times out and gives an error message that reads Error executing 'postInstallation': Program exited with exit code 1

In the database dashboard, I can see that it does look like Moodle is trying to connect but it always fails. The reason I think that is because I can see the right number of login attempts, about 1 per minute because it times out after that long and tries again, and because I see them at the right times of the day, like when I'm working on it.
It's not definitive proof that Moodle is attempting to login but I'd be surprised to find out it's something else.
I haven't figured out how to find out why the login attempts are failing either.
I've enabled better logging in MySQL/RDS to try to track down the issue, to no avail. I can't even find the login attempts that are failing, whether they're Moodle or not. I can see me connecting from my local machine, the host in the cluster and the container in the cluster. Then there's a lot of backend looking MySQL queries, so no useful clues there, for me.

Here's the logs that I can see:

Welcome to the Bitnami moodle container
Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-moodle
Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-moodle/issues

nami    INFO  Initializing apache
apache  INFO  ==> Reconfiguring PID file location...
nami    INFO  apache successfully initialized
nami    INFO  Initializing php
nami    INFO  php successfully initialized
nami    INFO  Initializing mysql-client
nami    INFO  mysql-client successfully initialized
nami    INFO  Initializing moodle
mysql-c INFO  Trying to connect to MySQL server
mysql-c INFO Found MySQL server listening at <my-database-cluster>:3306
mysql-c INFO MySQL server listening and working at <my-database-cluster>:3306
Error executing 'postInstallation': Program exited with exit code 1

Describe the results you expected:

The Moodle container, whether running locally or in the cluster, can startup and run using a remote database instead of the MariaDB container.

Additional information you deem important (e.g. issue happens only occasionally):

Version

  • Output of docker version:
$ docker version
Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.4
 Git commit:   3dfb8343b139d6342acfd9975d7f1068b5b1c3d3
 Built:        Thu May 24 22:21:27 2018
 OS/Arch:      linux/amd64
 Experimental: false
 Orchestrator: swarm

Server:
 Engine:
  Version:      18.03.1-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.4
  Git commit:   7390fc6/18.03.1-ce
  Built:        Thu May 24 22:22:43 2018
  OS/Arch:      linux/amd64
  Experimental: false
  • Output of docker info:
$ docker info
Containers: 97
 Running: 2
 Paused: 0
 Stopped: 95
Images: 3
Server Version: 18.03.1-ce
Storage Driver: devicemapper
 Pool Name: docker-docker--pool
 Pool Blocksize: 524.3kB
 Base Device Size: 10.74GB
 Backing Filesystem: ext4
 Udev Sync Supported: true
 Data Space Used: 3.836GB
 Data Space Total: 23.33GB
 Data Space Available: 19.49GB
 Metadata Space Used: 4.997MB
 Metadata Space Total: 41.94MB
 Metadata Space Available: 36.95MB
 Thin Pool Minimum Free Space: 2.333GB
 Deferred Removal Enabled: true
 Deferred Deletion Enabled: true
 Deferred Deleted Device Count: 0
 Library Version: 1.02.135-RHEL7 (2016-11-16)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 773c489c9c1b21a6d78b5c538cd395416ec50f88
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.14.33-51.37.amzn1.x86_64
Operating System: Amazon Linux AMI 2018.03
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.792GiB
Name: ip-172-31-20-173
ID: FG2J:ZD2O:TRQ6:T6AV:WPWT:CWAD:U2O6:BOWJ:3C53:NEU6:5HGR:THL7
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
  • Output of docker-compose version (if applicable):
# on my local machine
$ docker-compose version
docker-compose version 1.21.1, build 5a3f1a3
docker-py version: 3.3.0
CPython version: 3.6.4
OpenSSL version: OpenSSL 1.0.2o  27 Mar 2018

Additional environment details (AWS, VirtualBox, Docker for MAC, physical, etc.):

  • Entrypoint: ["/app-entrypoint.sh"]
  • CMD: ["/run.sh"]
  • AMI: amzn-ami-2018.03.a-amazon-ecs-optimized (ami-d2f489aa)
  • Instance type: t2-large:
    • cores: 2
    • Memory: 8
    • AMI/VM: Amazon Linux AMI (ECS optimized)

I'm not 100% certain how ECS runs the docker run command but here's what the container looks like, as it's running:
environment variables I pass in at runtime:

  • Environment:
ALLOW_EMPTY_PASSWORD=no
APACHE_HTTP_PORT_NUMBER=80
APACHE_HTTPS_PORT_NUMBER=443
BITNAMI_APP_NAME=moodle
MARIADB_HOST=<cluster endpoint>
MARIADB_PORT_NUMBER=3306
MOODLE_DATABASE_NAME=<a word>
MOODLE_DATABASE_PASSWORD=<a real great password>
MOODLE_DATABASE_USER=<tried existing, root and new usernames>
MOODLE_PASSWORD=<my favorite something>
MOODLE_SITENAME=Yo
MOODLE_USERNAME=<tried the same stuff as database user>
MYSQL_CLIENT_CREATE_DATABASE_PASSWORD=<some new user password>
MYSQL_CLIENT_CREATE_DATABASE_PRIVILEGES=ALL
MYSQL_CLIENT_CREATE_DATABASE_USER=<a new username for ^ password>
  • Volumes:
    aliased as: moodledata
    container path: /bitnami
    Read and Write enabled
  • Networking:
    • Bridge
    • Publicly accessible IP
    • Private IP
    • Ports: 80:80 and 443:443
    • Security Group: Same as database cluster
      • (For testing) anything in that security group can access any other member of the same security group, on any port (like the default security group). That will get more secure after I can get it to run.

Error executing 'postInstallation': Database tables already present, cli installation can not continue

Description

Moodle does not start,
I am getting following error when running "docker logs moodle_moodle_1"

Error executing 'postInstallation': Database tables already present, cli installation can not continue

Full log

WARN  ==> You set the environment variable ALLOW_EMPTY_PASSWORD=yes. For safety reasons, do not use this flag in a production environment.
nami    INFO  Initializing apache
apache  INFO  ==> Reconfiguring PID file location...
nami    INFO  apache successfully initialized
nami    INFO  Initializing php
nami    INFO  php successfully initialized
nami    INFO  Initializing mysql-client
nami    INFO  mysql-client successfully initialized
nami    INFO  Initializing moodle
mysql-c INFO  Trying to connect to MySQL server
mysql-c INFO  Found MySQL server listening at mariadb:3306
mysql-c INFO  MySQL server listening and working at mariadb:3306
Error executing 'postInstallation': Database tables already present, cli installation can not continue.

Steps to reproduce the issue:

  1. docker-compose up -d (with the default file from the documentation)
  2. docker logs moodle_moodle_1

Describe the results you received:

Error executing 'postInstallation': Database tables already present, cli installation can not continue

Describe the results you expected:

Moodle starts

Version

  • Output of docker version:
Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   9ee9f40
 Built:        Thu Apr 26 07:13:02 2018
 OS/Arch:      darwin/amd64
 Experimental: false
 Orchestrator: swarm
  • Output of docker info:
Containers: 9
 Running: 5
 Paused: 0
 Stopped: 4
Images: 20
Server Version: 18.03.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 773c489c9c1b21a6d78b5c538cd395416ec50f88
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.87-linuxkit-aufs
Operating System: Docker for Mac
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 1.952GiB
Name: linuxkit-025000000001
ID: PQJL:32XB:Q7RG:BSRE:U46V:AZW7:DAEA:ZRZ4:PSBG:QT5W:NAYV:DAC5
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 59
 Goroutines: 71
 System Time: 2018-07-04T00:43:50.9584486Z
 EventsListeners: 2
HTTP Proxy: docker.for.mac.http.internal:3128
HTTPS Proxy: docker.for.mac.http.internal:3129
Registry: https://index.docker.io/v1/
Labels:
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
  • Output of docker-compose version (if applicable):
docker-compose version 1.21.1, build 5a3f1a3
docker-py version: 3.3.0
CPython version: 3.6.4
OpenSSL version: OpenSSL 1.0.2o  27 Mar 2018

docker-compose up hangs during Moodle installation when run in GitLab pipeline


BUG REPORT INFORMATION

Description

When starting Moodle via docker-compose up in a Docker container (a GitLab CI job runner) the Moodle container hangs up during the Moodle installation.

We want to run Moodle integration tests in our GitLab pipeline. Therefore, we want to start Moodle via docker-compose up as we do with our local Docker installation.

Docker-in-docker seems to be configured appropriately as docker build and docker push work in the pipeline. docker-compose is installed via pip install docker-compose in the pipeline and appears to work, too. At least until the Moodle installation is run.

The last log statements before the installation hangs are the following:

mysql_1   | 2019-04-17T12:16:50.332968Z 0 [Note] Event Scheduler: Loaded 0 events
mysql_1   | 2019-04-17T12:16:50.333349Z 0 [Note] /opt/bitnami/mysql/bin/mysqld: ready for connections.
mysql_1   | Version: '5.7.25'  socket: '/opt/bitnami/mysql/tmp/mysql.sock'  port: 3306  MySQL Community Server (GPL)
moodle_1  | nami    INFO  php successfully initialized
moodle_1  | nami    INFO  Initializing mysql-client
moodle_1  | nami    INFO  mysql-client successfully initialized
moodle_1  | nami    INFO  Initializing libphp
moodle_1  | nami    INFO  libphp successfully initialized
moodle_1  | nami    INFO  Initializing moodle
moodle_1  | mysql-c INFO  Trying to connect to MySQL server
mysql_1   | 2019-04-17T12:17:00.281086Z 2 [Note] Got an error reading communication packets
moodle_1  | mysql-c INFO  Found MySQL server listening at mysql:3306
moodle_1  | mysql-c INFO  MySQL server listening and working at mysql:3306
moodle_1  | moodle  INFO  Running Moodle install. Please be patient...
Pulling docker image gitlab/gitlab-runner-helper:x86_64-fa86510e ...
ERROR: Job failed: execution took longer than 1h0m0s seconds

The Got an error reading communication packets seems to be normal. It has always been appearing. The line Found MySQL server listening at mysql:3306 suggests that the Moodle container can see the MySQL container.

Increasing the log level yields the following last lines:

moodle_1  | moodle  INFO  Running Moodle install. Please be patient...
moodle_1  | php     TRACE [normalize] File normalization: bin -> /opt/bitnami/php/bin
moodle_1  | php     TRACE [normalize] File normalization: bin -> /opt/bitnami/php/bin
moodle_1  | php     TRACE [runProgram] Executing: /opt/bitnami/php/bin/php admin/cli/install.php,--lang=en,--chmod=2775,--wwwroot=http://localhost:80,--dataroot=/bitnami/moodle/moodledata,--dbtype=mariadb,--dbhost=mysql,--dbport=3306,--dbname=bitnami_moodle,--dbuser=bn_moodle,--dbpass=,--adminuser=user,--adminpass=bitnami,[email protected],--fullname="New Site",--shortname="New Site",--non-interactive,--allow-unstable,--agree-license
moodle_1  | php     TRACE [runProgram] Executing internal command: /opt/bitnami/php/bin/php ["admin/cli/install.php","--lang=en","--chmod=2775","--wwwroot=http://localhost:80","--dataroot=/bitnami/moodle/moodledata","--dbtype=mariadb","--dbhost=mysql","--dbport=3306","--dbname=bitnami_moodle","--dbuser=bn_moodle","--dbpass=","--adminuser=user","--adminpass=bitnami","[email protected]","--fullname=\"New Site\"","--shortname=\"New Site\"","--non-interactive","--allow-unstable","--agree-license"]
Pulling docker image gitlab/gitlab-runner-helper:x86_64-fa86510e ...
ERROR: Job failed: execution took longer than 1h0m0s seconds

Steps to reproduce the issue:

Run Moodle as described in the README (https://github.com/bitnami/bitnami-docker-moodle#run-the-application-using-docker-compose) - but in a GitLab pipeline within which the docker command can be run (see https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/) and after removing volumes:

script:
    - apk update && apk upgrade
    - apk add py-pip
    - apk add python-dev libffi-dev openssl-dev gcc libc-dev make
    - pip install docker-compose
    - docker-compose up

docker-compose.yml:

version: '2'

services:
  mariadb:
    image: 'bitnami/mariadb:latest'
    environment:
      - MARIADB_USER=bn_moodle
      - MARIADB_DATABASE=bitnami_moodle
      - ALLOW_EMPTY_PASSWORD=yes
  moodle:
    image: 'bitnami/moodle:latest'
    environment:
      - MARIADB_HOST=mariadb
      - MARIADB_PORT_NUMBER=3306
      - MOODLE_DATABASE_USER=bn_moodle
      - MOODLE_DATABASE_NAME=bitnami_moodle
      - ALLOW_EMPTY_PASSWORD=yes
    ports:
      - '80:80'
      - '443:443'
    depends_on:
      - mariadb

Describe the results you received:

moodle_1  | moodle  INFO  Running Moodle install. Please be patient...
Pulling docker image gitlab/gitlab-runner-helper:x86_64-fa86510e ...
ERROR: Job failed: execution took longer than 1h0m0s seconds

Describe the results you expected:

An error message that tells what went wrong during the long lasting installation (up to 10 minutes) - at least on the maximum log level.

Additional information you deem important (e.g. issue happens only occasionally):

Occasionally, when running docker-compose up with tracing disabled the container exited with error code 1 (but still without any error message):

moodle_1  | moodle  INFO  Running Moodle install. Please be patient...
budget-plugin_moodle_1 exited with code 1

Version

  • Output of docker version:
Client: Docker Engine - Community
 Version:           18.09.5
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        e8ff056dbc
 Built:             Thu Apr 11 04:42:27 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.4
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       d14af54
  Built:            Wed Mar 27 18:01:48 2019
  OS/Arch:          linux/amd64
  Experimental:     false
  • Output of docker info:
Containers: 84
 Running: 3
 Paused: 0
 Stopped: 81
Images: 155
Server Version: 18.09.4
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: bb71b10fd8f58240ca47fbb579b9d1028eea7c84
runc version: 2b18fe1d885ee5083ef9f0838fee39b62d653e30
init version: fec3683
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-145-generic
Operating System: Ubuntu 16.04.6 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 15.67GiB
Name: gitlab-runner01
ID: 7QQZ:IE43:PCGG:QRZY:V66M:M4XS:XRE6:QS6S:NYI4:HPV7:JVY3:VGHS
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine

WARNING: No swap limit support
  • Output of docker-compose version (if applicable):
docker-compose version 1.24.0, build 0aa5906
docker-py version: 3.7.2
CPython version: 2.7.15
OpenSSL version: OpenSSL 1.1.1b  26 Feb 2019

Additional environment details (AWS, VirtualBox, Docker for MAC, physical, etc.):

docker-in-docker (docker-compose in GitLab CI job runner)

Feature Request: Install Moodle at build time

Would it be possible to run the Moodle installation during the Docker build (and not during container startup) so that the container can be started in seconds instead of minutes?

I found an approach how to run the DBMS at build time (2nd answer in the SO post), however, I have no idea how to achieve it with the installation script being in another container than the database:

https://serverfault.com/questions/796762/creating-a-docker-mysql-container-with-a-prepared-database-scheme

During testing I often have to prune the volumes to make sure that changes work from a clean installation. Therefore, I have to be very patient during the recurring Moodle installations.

Error executing 'postInstallation': Database tables already present

Description

I've seen that other tickets have been opened around the topic but never properly resolved. I'm trying to set Moodle up to horizontally scale on Kubernetes, but each replica fails because it tries to recreate the database each time. I've tried using the 'externalDatabase' database setting and even ReadWriteMany as one of the previous issues mentions. Nothing works.

Steps to reproduce the issue:

  1. Install the helm cart on Kubernetes
  2. Replicate the deployment

Describe the results you received:

Error executing 'postInstallation': Database tables already present, cli installation can not continue.

Describe the results you expected:

For the deployment to horizontally scale.

Moodle with Traefik

moodle.txt

Docker container stop after start the conteiner with traefik

Steps to reproduce the issue:
Install the container, uses labels of traefik, load the domain on a browser

Describe the results you received:

After see the logs of conteiner, this message apear

Error executing 'postInstallation': The configuration file config.php already exists. Please use admin/cli/install_database.php to upgrade Moodle for this site.

Describe the results you expected:

Lastest

Persistence of Moodle data incomplete

Description
I have the Moodle application running with persistence on a server, and it works fine. However, I am trying to set up an additional (local) Moodle application on the same machine for testing purposes. My problem is that I cannot get the Moodle data to be persisted in a similar way. More specifically the moodle folder doesn't persist the Moodlee core code and plugins in my volume moodle_data, only the moodledata folder is there. Hence I cannot add my plugins, theme, etc. to the local file tree. Could this be related to the fact that I already have a Moodle application running on the same machine?

Another issue is that I cannot seem to remove the volumes after deletion of the containers. Even the docker volume prune doesn't detect the created folders and files. I don't have sudo access to delete these folders myself.

Steps to reproduce the issue:

  1. I used the following commands to create the mariadb and moodle container:
docker run -d --name test-mariadb --net test-environment-moodle-tier \
-e MARIADB_PORT_NUMBER=3307 \
-e MARIADB_DATABASE=test-mariadb \
-e ALLOW_EMPTY_PASSWORD=yes \
-e MARIADB_USER=bn_moodle \
-v /home/code/testenvironment/mariadb_data:/bitnami \
bitnami/mariadb 

docker run -d -p 18889:80 -p 18890:443 --name test-moodle --net test-environment-moodle-tier \
-e MARIADB_PORT_NUMBER=3307 \
-e ALLOW_EMPTY_PASSWORD=yes \
 -e MOODLE_DATABASE_USER=bn_moodle \
 -e MOODLE_DATABASE_NAME=test-mariadb \
-v /home/code/testenvironment/moodle_data:/bitnami bitnami/moodle
  1. Inspect the persisted folder when Moodle is accessible from the browser ~/testenvironment/test/moodle_data/moodle$
  2. Only the folder moodledata is visible from that path. I would expect the Moodle core to be here as well (and that's how it is with my other application)

Describe the results you received:

I cannot see the Moodle code, plugins, themes, etc. in my persisted folder. I can also not delete persisted folder after deletion of the containers with docker volume prune.

Describe the results you expected:

I expect to see the Moodle code, plugins, themes, etc. in my persisted folder, to be able to modify the code and add my own plugins directly to the file tree.

Additional information you deem important (e.g. issue happens only occasionally):

My other Moodle application is being run with the following commands:

docker run -d --name mariadb-master --net moodle-tier \
-e MARIADB_ROOT_PASSWORD=*** \
-e MARIADB_REPLICATION_MODE=master \
-e MARIADB_REPLICATION_USER=*** \
-e MARIADB_REPLICATION_PASSWORD=*** \
-e MARIADB_USER=code \
-e MARIADB_PASSWORD=*** \
-e MARIADB_DATABASE=mariadb-master -v /export/home1/code/persistence/mariadb_data:/bitnami bitnami/mariadb

docker run -d --name mariadb-slave --link mariadb-master:master --net moodle-tier\
 -e MARIADB_REPLICATION_MODE=slave \
-e MARIADB_REPLICATION_USER=*** \
-e MARIADB_REPLICATION_PASSWORD=*** \
-e MARIADB_MASTER_HOST=master \
-e MARIADB_MASTER_ROOT_PASSWORD=**** \
-v /export/home1/code/persistence/mariadb_slave_data:/bitnami bitnami/mariadb

docker run -d -p 80:80 -p 443:443 --name moodle --net moodle-tier \
-e MARIADB_PASSWORD=*** \
-e MARIADB_HOST=mariadb-master \
-v /export/home1/code/persistence/moodle_data:/bitnami bitnami/moodle

Version

  • Output of docker version:
Client:
 Version:      17.03.2-ce
 API version:  1.27
 Go version:   go1.6.2
 Git commit:   f5ec1e2
 Built:        Thu Jul  5 23:07:48 2018
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.2-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.6.2
 Git commit:   f5ec1e2
 Built:        Thu Jul  5 23:07:48 2018
 OS/Arch:      linux/amd64
 Experimental: false
  • Output of docker info:
Docker info output:
Containers: 9
 Running: 5
 Paused: 0
 Stopped: 4
Images: 7
Server Version: 17.03.2-ce
Storage Driver: aufs
 Root Dir: /export/home1/docker/aufs
 Backing Filesystem: extfs
 Dirs: 60
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 4ab9917febca54791c5f071a9d1f404867857fcc
runc version: 54296cf40ad8143b62dbcaa1d90e520a2136ddfe
init version: N/A (expected: 949e6facb77383876aeff8a6944dde66b3089574)
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-133-generic
Operating System: Ubuntu 16.04.5 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.682 GiB
Name: code
ID: K3KJ:6WLL:MSKD:RJEU:VZMG:WPO4:GHKV:AX47:I7XE:W4AF:BJ54:DB7I
Docker Root Dir: /export/home1/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: No swap limit support

Additional environment details (AWS, VirtualBox, Docker for MAC, physical, etc.):

Moodle migration from AWS EC2 instance to AWS ECS by using Docker Container

Hello
I'd like to know how to migrate my Bitnami Moodle instance from AWS EC2 to AWS ECS by using docker container image and furthermore how to maintain the latest updates on my new environment?

I'm now running the following versions
Moodle : 3.4.1
PHP : 7.0.26
MySQL : 5.7.22 (source)
MySQL : 5.7.25 (destination)

History:

I've tried many different approaches but I was always hitting on a wall.
Once I was not running the exact MySQL version, the next time the PHP was not compatible with the files imported, the next time the database update process was stuck forever etc.
The last time that I tried, I was asked to run the initial script setup on every container start with no way to avoid it even if I had data to my moodledata folder and my DB as well. Every time the container was starting up was halted to the message that the database is not empty.
I tried to create a script and use a temporary schema just for this initial phase and after the initial build of the schema and the tables to switch to the productive DB.
This DB initialization issue has been fixed by adding the MOODLE_SKIP_INSTALL flag.

I've tried both https://github.com/moodlehq/moodle-docker and https://hub.docker.com/r/bitnami/moodle/ docker images with no success

That was my initial post to Bitnami Community but seems that my issue is more related to this GitHub thread as i'm trying to use this docker image

As per Bitnami-Docker-Moodle issue, #95 regarding the initial installation seems that have been fixed as Wesley Salazar reports and I can confirm.

But, I'm in the same problem loop again.
I'm trying to run a copy of my production Moodle installation locally by following the steps below.

I used this bitnami docker moodle image for my tests

Step1: I'm creating the MariaDB and Moodle containers by docker-compose file and everything works fine.
Step2: Trying to change the docker volumes with persistent folders locally and works with some page load delays.
Step3: Paste my moodle folder content (from my production env) into the moodle folder created by step 2 into this "data persistent" folder which I have already clear, set the "MOODLE_SKIP_INSTALL=yes" variable, change my config.php file in order to be connected to my local MySQL DB (not the containerised MariaDB) and bring the containers up again.

At this point, I realized that the structure is different and there is an init script running on Moodle Installation step which creates folders into moodle directory (even that I get the message "The installation wizard will be skipped and parameters for configuring the user account and SMTP credentials will be ignored.")
FYI: My productive moodle folder contains only .bitnamimeta,backup,conf,htdocs,licenses,moodledata folders and bnconfig and updateip files, but the script creates at least 50 more folders and 40 more files in there.

Furthermore:

  1. The connection with my dedicated local DB seems to work (mysql-c INFO MySQL server listening and working at 192.168.1.3:3306) but I can't log in with an existing user (confirmed that exists in this DB and the password is correct).
  2. The pages can't be loaded correctly and seem like PHP issue, the images are missing as well and some js scripts are failed to load.

My expectations from the moodle container image was to start the container by indicating the DB variables and the location of the moodledata directory by binding a local folder as volume and get the Moodle service up and running.

Configuration for the database name

Description

Would it be possible (or is there a way currently) to configure the database name to use for Moodle? We have a situation where we need to run multiple instances as pods in Kubernetes all connecting to the same database server (RDS due to issues with persistent volumes), but serving different application urls.

The database name seems to be pre-configured as bitnami_moodle_<random-string> if the bitnami_moodle database exists.

Installing a Moodle plugin fails due to write permissions

Description
Hi,
Tried to install the Attendance plugin but got write permission error to folder /opt/bitnami/moodle/mod. As a temporal workaround, changed the write permissions of that folder to "g+w" and then plugin installed normally. It turns out that the owner of /opt/bitnami/moodle/mod is bitnami:daemon, but the owner of the newly created folder /opt/bitnami/moodle/mod/attendance is daemon:daemon. Apparently, the application is started by user daemon and this creates the write permission issue.

Steps to reproduce the issue:

  1. Download the plugin zip file.
  2. Login as admin user.
  3. Go to manual plugin installation page.
  4. Drag and drop the zip file into that page.
  5. Start plugin install.

Describe the results you received:

Write permission error to folder /opt/bitnami/moodle/mod is displayed.

Describe the results you expected:

Additional information you deem important (e.g. issue happens only occasionally):

Version

  • Output of docker version:
Client:
 Version:      17.05.0-ce
 API version:  1.29
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Thu May  4 22:10:54 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.05.0-ce
 API version:  1.29 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Thu May  4 22:10:54 2017
 OS/Arch:      linux/amd64
 Experimental: false
  • Output of docker info:
Containers: 1
 Running: 1
 Paused: 0
 Stopped: 0
Images: 5
Server Version: 17.05.0-ce
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 35
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9048e5e50717ea4497b757314bad98ea3763c145
runc version: 9c2d8d184e5da67c95d601382adf14862e4f2228
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-93-generic
Operating System: Ubuntu 16.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 15.63GiB
Name: hi-srv2
ID: 7C6V:IHFG:344I:7OO6:VWCJ:OG5Q:BJM5:LOAN:5UG2:K75C:QW5D:P2CF
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: No swap limit support
  • Output of docker-compose version (if applicable):
docker-compose version 1.15.0, build e12f3b9
docker-py version: 2.4.2
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t  3 May 2016

Additional environment details (AWS, VirtualBox, Docker for MAC, physical, etc.):

Backup Theme nad Plugins

I try to deploy and custom moodle's appearance by install theme to the moodle.
and I try to test persistence the moodle by backup and restore using similar step just like tutorial on this repo

  1. So first I stop the container using command: docker-compose stop
  2. Archiving using command: zip -r moodle-backup.zip moodle_persistence_folder/
  3. Extract moodle-backup.zip to another server with the same path
  4. change moodle's folder owner to user which the same group with Docker
  5. run command: docker-compose up

Indeed the data is persistence, but the Theme seems not backed up also, which leads the appearance looks ugly and show some errors on the homepage :

line 677 of /lib/pagelib.php: call to moodle_page->initialise_theme_and_output()
line 864 of /lib/pagelib.php: call to moodle_page->magic_get_theme()
line 113 of /index.php: call to moodle_page->get_renderer()

Is there any other way to completely backup including with the themes or maybe also the plugin when running dockerized moodle instead commit the container and then load it to another server? because I realize that Moodle folder installation reside at /opt, and /opt is not a part volume on the docker compose.

I run ubuntu server 14.04.5, with moodle 3.3.1 version, and docker 17.03.0-ce version

thank you

Cannot start container with SMTP parameters

Launching the container with SMTP configuration breaks the image with the following error log:

application_1  | nami    INFO  Initializing apache
application_1  | apache  INFO  ==> Patching httpoxy...
application_1  | nami    INFO  apache successfully initialized
application_1  | nami    INFO  Initializing moodle
application_1  | mysqlCo INFO  Trying to connect to MySQL server
application_1  | mysqlCo INFO  Found MySQL server listening at mariadb:3306
application_1  | mysqlCo INFO  MySQL server listening and working at mariadb:3306
application_1  | Error executing 'postInstallation': ERROR 1062 (23000) at line 1: Duplicate entry 'smtphosts' for key 'mdl_conf_nam_uix'
application_1  |

I am using the following docker-compose.yml file to launch the container with SMTP configuration.

version: '2'
services:
  mariadb:
    image: 'bitnami/mariadb:latest'
    volumes:
      - 'mariadb_data:/bitnami/mariadb'
  application:
    image: 'bitnami/moodle:latest'
    ports:
      - '80:80'
      - '443:443'
    volumes:
      - 'moodle_data:/bitnami/moodle'
      - 'apache_data:/bitnami/apache'
      - 'php_data:/bitnami/php'
    depends_on:
      - mariadb
    environment:
      - SMTP_HOST=smtp.gmail.com
      - SMTP_PORT=587
      - [email protected]
      - SMTP_PASSWORD=secretemailpassword
volumes:
  mariadb_data:
    driver: local
  moodle_data:
    driver: local
  apache_data:
    driver: local
  php_data:
    driver: local

The container from a MariaDB does not rise

The container from the database does not rise either manually or in composition

root@pnevmoslon:/home/lea32/moodle# docker network create moodle-tierError response from daemon: network with name moodle-tier already exists
root@pnevmoslon:/home/lea32/moodle# docker run -d --name mariadb \
>  -e ALLOW_EMPTY_PASSWORD=yes \
>  -e MARIADB_USER=bn_moodle \
>  -e MARIADB_DATABASE=bitnami_moodle \
>  -v /path/to/mariadb-persistence:/bitnami \
>  --net moodle-tier \
>  bitnami/mariadb:latest
Unable to find image 'bitnami/mariadb:latest' locally
latest: Pulling from bitnami/mariadb
656ca9fc9486: Pull complete 

... - " -

Digest: sha256:33c939f4950f8d4b094d411e9ae2b74152bab6c162ff88f0ce59b17f7bb9e73b
Status: Downloaded newer image for bitnami/mariadb:latest
a928f912c9e39064c7319768184d550ffca05dfec05d763dc9211d3a68f80508
root@pnevmoslon:/home/lea32/moodle# docker run -d -p 80:80 -p 443:443 --name moodle \
>  -e ALLOW_EMPTY_PASSWORD=yes \
>  -e MOODLE_DATABASE_USER=bn_moodle \
>  -e MOODLE_DATABASE_NAME=bitnami_moodle \
>  --net moodle-tier \
>  --volume /path/to/moodle-persistence:/bitnami \
>  bitnami/moodle:latest
Unable to find image 'bitnami/moodle:latest' locally
latest: Pulling from bitnami/moodle
656ca9fc9486: Already exists 
3f72622ff128: Pull complete 

... - ' - ...

Digest: sha256:6e410e007ca8bf8bfc2e1dbc3d02445928469d7bd59d0ba8666f83a8f76b0496
Status: Downloaded newer image for bitnami/moodle:latest
1cdee497e0e0925ffab6f0291aeb1535156967682bf201151e445df80eaadd10
root@pnevmoslon:/home/lea32/moodle# docker ps
CONTAINER ID        IMAGE                               COMMAND                  CREATED             STATUS               PORTS                                                                  NAMES
1cdee497e0e0        bitnami/moodle:latest               "/app-entrypoint.s..."   10 seconds ago      Up 8 seconds            0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp                               moodle

Can´t Modify The PHP File Upload Limit

Hi there,

I have installed this container and I can not increase the PHP file upload limit since:

  • It seems that there is not any text editor in this container image.
  • When I stop/start Apache inside the container, the whole container is stopped.

Is there any way to change the php.ini for increase the PHP file upload limit and
restart the service with a persistant configuration?

Thanks in advanced.

Info required:

:~$ docker version
Client:
Version: 17.05.0-ce
API version: 1.29
Go version: go1.7.5
Git commit: 89658be
Built: Thu May 4 22:10:54 2017
OS/Arch: linux/amd64

Server:
Version: 17.05.0-ce
API version: 1.29 (minimum version 1.12)
Go version: go1.7.5
Git commit: 89658be
Built: Thu May 4 22:10:54 2017
OS/Arch: linux/amd64
Experimental: false

:~$ docker info
Containers: 5
Running: 5
Paused: 0
Stopped: 0
Images: 3
Server Version: 17.05.0-ce
Storage Driver: devicemapper
Pool Name: docker-9:3-655312-pool
Pool Blocksize: 65.54kB
Base Device Size: 10.74GB
Backing Filesystem: xfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 1.221GB
Data Space Total: 107.4GB
Data Space Available: 17.72GB
Metadata Space Used: 19.68MB
Metadata Space Total: 2.147GB
Metadata Space Available: 2.128GB
Thin Pool Minimum Free Space: 10.74GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Deferred Deletion Enabled: false
Deferred Deleted Device Count: 0
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.110 (2015-10-30)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9048e5e50717ea4497b757314bad98ea3763c145
runc version: 9c2d8d184e5da67c95d601382adf14862e4f2228
init version: 949e6fa
Security Options:
seccomp
Profile: default
Kernel Version: 4.19.0-ovh-xxxx-std-ipv6-64
Operating System: Ubuntu 16.04.6 LTS
OSType: linux
Architecture: x86_64
CPUs: 12
Total Memory: 31.25GiB
Name: ns3159677
ID: 7WJZ:SLLF:OBSF:F3ML:SCXY:EIRG:7QYD:6XSW:PWUS:BZQ5:SGJZ:JX7O
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

WARNING: devicemapper: usage of loopback devices is strongly discouraged for production use.
Use --storage-opt dm.thinpooldev to specify a custom block storage device.
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support

root@769f1f15f1c7:/# echo $BITNAMI_IMAGE_VERSION
3.7.2-debian-9-r33

[improvement] Support `/var/local/cache` for `$CFG->localcachedir`

Description

When using Moodle with Server cluster configuration, it is recommended to:

$CFG->localcachedir

The difference from $CFG->cachedir is that the directory does not have to be shared by all cluster nodes, the file contents do not change. Use local fast filesystem on each cluster node.

However this is not yet easily configurable because no folder with proper permission is ready.

Describe the results you expected:

I propose adding this:

# Prepare /var/local/cache
RUN mkdir -vp /var/local/cache && \
    chown -Rc bitnami:daemon /var/local/cache && \
    chmod ug+rwx /var/local/cache

then setting as default in Moodle's config.php:

$CFG->localcachedir = '/var/local/cache';

This should have little effect on a standalone instance, but will be helpful for cluster configuration, one less thing to configure. Of course admin still free to change $CFG->localcachedir to anything else after installation.

Related to #100.

Error executing 'postInstallation': Error: spawnSync

Everything looks smooth after docker-compose up, but 10 secs later mariadb stops.

Logs of mariadb gives:

mariadb INFO  ==> Initializing database...
Error executing 'postInstallation': Error: spawnSync /opt/bitnami/mariadb/bin/mysql_install_db ENOMEM

My docker-compose.yml:

version: '3'
services:
  mariadb:
    image: 'bitnami/mariadb:latest'
    environment:
      - MARIADB_USER=bn_moodle
      - MARIADB_DATABASE=bitnami_moodle
      - ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - 'mariadb_data:/bitnami'
    ports:
      - '3303:3306'
  moodle:
    image: 'bitnami/moodle:latest'
    environment:
      - MARIADB_HOST=mariadb
      - MARIADB_PORT_NUMBER=3303
      - MOODLE_DATABASE_USER=bn_moodle
      - MOODLE_DATABASE_NAME=bitnami_moodle
      - ALLOW_EMPTY_PASSWORD=yes
    labels:
      kompose.service.type: nodeport
    ports:
      - '8060:80'
    volumes:
      - 'moodle_data:/bitnami'
    depends_on:
      - mariadb
volumes:
  mariadb_data:
    driver: local
  moodle_data:
    driver: local

Docker version:

Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   9ee9f40
 Built:        Thu Apr 26 07:17:20 2018
 OS/Arch:      linux/amd64
 Experimental: false
 Orchestrator: swarm

Server:
 Engine:
  Version:      18.03.1-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.5
  Git commit:   9ee9f40
  Built:        Thu Apr 26 07:15:30 2018
  OS/Arch:      linux/amd64
  Experimental: false

Docker info:

Containers: 4
 Running: 2
 Paused: 0
 Stopped: 2
Images: 4
Server Version: 18.03.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 773c489c9c1b21a6d78b5c538cd395416ec50f88
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-116-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 992.2MiB
Name: shinyserver
ID: XFY6:IMT5:ISYY:XUW7:LSAA:EGO3:7ZHN:NB2Z:F5U3:LIO3:7NYS:C3RR
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

I have two more containers running (Wordpress and Mysql related to WP)

Problem for install on qnap container station

This my configuration

ALLOW_EMPTY_PASSWORD no  
APACHE_HTTP_PORT_NUMBER 81  
APACHE_HTTPS_PORT_NUMBER 91  
APACHE_SET_HTTP_PORT no  
APACHE_SET_HTTPS_PORT no  
BITNAMI_APP_NAME moodle  
BITNAMI_IMAGE_VERSION 3.7.1-debian-9-r48  
GOSU_GPG_KEY B42F6819007F00F88E364FD4036A9C25BF357DD4  
GOSU_VERSION 1.10  
GPG_KEY_SERVERS_LIST ha.pool.sks-keyservers.net hkp://p80.pool.sks-keyservers.net:80 keyserver.ubuntu.com hkp://keyserver.ubuntu.com:80 pgp.mit.edu  
IMAGE_OS debian-9  
MARIADB_HOST mariadb  
MARIADB_PORT_NUMBER 3306  
MARIADB_ROOT_PASSWORD ****  
MARIADB_ROOT_USER root  
MOODLE_DATABASE_NAME bitnami_moodle  
MOODLE_DATABASE_PASSWORD ****  
MOODLE_DATABASE_USER bn_moodle  
MOODLE_EMAIL [email protected]  
MOODLE_LANGUAGE en  
MOODLE_PASSWORD bitnami  
MOODLE_SITENAME New Site  
MOODLE_SKIP_INSTALL no  
MOODLE_USERNAME user  
MYSQL_CLIENT_CREATE_DATABASE_NAME ****  
MYSQL_CLIENT_CREATE_DATABASE_PASSWORD ****  
MYSQL_CLIENT_CREATE_DATABASE_PRIVILEGES ALL  
MYSQL_CLIENT_CREATE_DATABASE_USER ****  
NAMI_VERSION 1.0.0-1  
PATH /opt/bitnami/apache/bin:/opt/bitnami/php/bin:/opt/bitnami/php/sbin:/opt/bitnami/mysql/bin:/opt/bitnami/nami/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin  
SMTP_HOST    
SMTP_PASSWORD    
SMTP_PORT    
SMTP_PROTOCOL    
SMTP_USER    
TINI_GPG_KEY 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7  
TINI_VERSION v0.13.2

After the launch of the container I get:

Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-moodle
Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-moodle/issues

INFO Initializing apache
INFO apache successfully initialized INFO Initializing php
INFO php successfully initialized
INFO Initializing mysql-client
Error executing 'postInstallation': Failed to connect to mariadb:3306 after 36 tries

Thanks for you help

Sample Docker-Compose file won't survive restarts

Example docker-compose file won't survive restarts. Gives a 503 when you try to open Moodle in a browser after you "docker-compose down" and then "docker-compose up" the file. You get this error message on the screen. " error/An error occurred whilst communicating with the server "

Steps to reproduce the issue:

  1. Download example docker-compose file from docker hub site: curl -LO https://raw.githubusercontent.com/bitnami/bitnami-docker-moodle/master/docker-compose.yml
  2. docker-compose up
  3. open the front page http://127.0.0.1
  4. docker-compose down
  5. docker-compose up
  6. open the front page http://127.0.0.1
  7. You get this error message on the screen " error/An error occurred whilst communicating with the server "

Describe the results you received:
Docker-Compose file doesn't survive restarts

Describe the results you expected:
Docker-Compose file to survive restarts

Additional information you deem important (e.g. issue happens only occasionally):

  • Output of docker version:
Client:
 Version:      17.03.0-ce
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   60ccb2265
 Built:        Thu Feb 23 10:58:26 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.0-ce
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   60ccb2265
 Built:        Thu Feb 23 10:58:26 2017
 OS/Arch:      linux/amd64
 Experimental: false


  • Output of docker info:
Containers: 2
 Running: 2
 Paused: 0
 Stopped: 0
Images: 1716
Server Version: 17.03.0-ce
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 1390
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: active
 NodeID: 411z2fpbxhcxxfmi7s7lqcfp6
 Is Manager: true
 ClusterID: cy9txa4whmlxehhf335bsxydv
 Managers: 1
 Nodes: 1
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
 Node Address: 192.168.0.107
 Manager Addresses:
  192.168.0.107:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 977c511eda0925a723debdc94d09459af49d082a
runc version: a01dafd48bc1c7cc12bdb01206f9fea7dd6feb70
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-53-generic
Operating System: Linux Mint 18.1
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 15.55 GiB
Name: trainspotting
ID: P7TS:ZLYM:ZXHC:TF2C:BPQP:JIJN:5WWJ:M7VW:KVLN:Z7IL:VGMW:XIOI
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false


  • Output of docker-compose version (if applicable):
docker-compose version 1.9.0, build 2585387
docker-py version: 1.10.6
CPython version: 2.7.9
OpenSSL version: OpenSSL 1.0.1t  3 May 2016


Additional environment details (AWS, VirtualBox, Docker for MAC, physical, etc.):

Cron script not running

Description

On a default installation with docker-compose, the cron.php script seems to not be running.

Steps to reproduce the issue:

  1. Deploy the container as per https://github.com/bitnami/bitnami-docker-moodle#run-the-application-using-docker-compose
  2. Wait a day or two
  3. Go to the Admin notification page (/admin/index.php)

Describe the results you received:

A notice is printed that The cli/cron.php maintenance script has not been run for at least 24 hours.

Describe the results you expected:

That notice not to be printed ¯\(ツ)

Version

  • Output of docker version:
Client:
 Version:      17.05.0-ce
 API version:  1.29
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Thu May  4 22:10:54 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.05.0-ce
 API version:  1.29 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Thu May  4 22:10:54 2017
 OS/Arch:      linux/amd64
 Experimental: false
  • Output of docker info:
Containers: 20
 Running: 18
 Paused: 0
 Stopped: 2
Images: 46
Server Version: 17.05.0-ce
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 342
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9048e5e50717ea4497b757314bad98ea3763c145
runc version: 9c2d8d184e5da67c95d601382adf14862e4f2228
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-141-generic
Operating System: Ubuntu 16.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 31.32GiB
Name:  redacted
ID: redacted
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: No swap limit support
  • Output of docker-compose version (if applicable):
docker-compose version 1.23.2, build 1110ad0
docker-py version: 3.7.0
CPython version: 2.7.12
OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016

Additional environment details (AWS, VirtualBox, Docker for MAC, physical, etc.):
Physical box with ubuntu 16.04.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.