Docker化moodle实例

问题描述 投票:0回答:1

我正在尝试对本地安装的moodle进行docker化,这样当我将moodle提升到“另一个级别”时,我可以更轻松地管理它。将来我会有几个moodle,所以我需要容器来更容易管理它们。

我尝试了几种方法。 我尝试使用 dockerfile 创建我的 onw 映像:

# Use an official PHP runtime as a parent image
FROM php:7.4-apache

# Set the working directory to /var/www/html
WORKDIR /var/www/html

# Copy the contents of your Moodle directory to the container
COPY . /var/www/html

# Install any additional dependencies or PHP extensions if needed
# For example:
# RUN docker-php-ext-install pdo_mysql

# Expose port 80 to the outside world
EXPOSE 80

# Start Apache when the container launches
CMD ["apache2-foreground"]

和 docker-compose.yml:

version: '3.8'

services:
  moodle:
    image: your-moodle-image-name
    ports:
      - "8080:80"  # Adjust the port mapping as needed

但没有任何作用。

另外,我尝试制作一个同时运行moodle和mariadb的docker-compose.yml文件(但使用bitnami/moodle图像):

version: '2'
services:
  mariadb:
    image: mariadb
    container_name: mariadb2
    ports:
      - 3306:3306
    volumes:
      - /srv/dev-disk-by-x/dckcnfg/moodle:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=passroot
      - MYSQL_ROOT_USER=root
      - MYSQL_DATABASE=moodle
      - ALLOW_EMPTY_PASSWORD=yes

  moodle:
    image: bitnami/moodle
    container_name: moodle2
    ports:
      - 8089:80
     # - 8449:443
    environment:
      - MOODLE_DATABASE_HOST=localhost
      - MOODLE_DATABASE_USER=user
      - MOODLE_DATABASE_PASSWORD=pass
      - MOODLE_DATABASE_NAME=moodle
      - ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - /var/www/html/moodle:/opt/bitnami/moodle
      - /var/www/moodledata:/opt/bitnami/moodledata
    depends_on:
      - mariadb
    links:
      - mariadb:mariadb

而且它不起作用。 我在 Moodle 日志上看到“尝试连接到数据库服务器”。 我想这是因为我要部署 mariadb 容器,我无法让 mariadb 在容器之外为 Moodle 运行,然后,我永远不会让容器与外部对话。

docker moodle docker-image
1个回答
0
投票

不用自己动手,有一个 Moodle-HQ 维护的 Docker 项目可能值得研究一下:https://github.com/moodlehq/moodle-docker

我个人已经成功使用说明来使用容器进行手动测试,因为这为您提供了可以与之交互的安装:

# Initialize Moodle database for manual testing
bin/moodle-docker-compose exec webserver php admin/cli/install_database.php --agree-license --fullname="Docker moodle" --shortname="docker_moodle" --summary="Docker moodle site" --adminpass="test" --adminemail="[email protected]"

备注:

  • Moodle 配置为监听 http://localhost:8000/。
  • Mailpit 正在监听 http://localhost:8000/_/mail 以查看 Moodle 发出的电子邮件。
  • 您登录时需要使用的管理员
    username
    默认为
    admin
    。您可以通过
    --adminuser='myusername'
  • 进行自定义

大部分配置可以通过使用环境变量来改变;我将我的收集到一个

.env.example
文件中,在启动新环境时用作参考:

CODE_DIR=`pwd`
DOCKER_DIR=/var/work/docker-moodle/

export COMPOSE_PROJECT_NAME=moodle
export MOODLE_DOCKER_WEB_PORT=8000
export MOODLE_DOCKER_SELENIUM_VNC_PORT=5900
export MOODLE_DOCKER_WWWROOT="$CODE_DIR"
export MOODLE_DOCKER_DB=pgsql
export MOODLE_DOCKER_DB_PORT=3306
© www.soinside.com 2019 - 2024. All rights reserved.