From 0089232d42ee5bc2e98f2fbf61b3f1ba35016f08 Mon Sep 17 00:00:00 2001
From: Artem Baranovskyi <artem.baranovsky1980@gmail.com>
Date: Sun, 8 Sep 2024 20:58:23 +0300
Subject: [PATCH] Moodle and Python services are separated to isolated
 services.

---
 asystgrade/db/access.php                      |  4 ----
 asystgrade/db/install.xml                     | 22 ------------------
 docker-compose.yml                            |  4 ++--
 install_moodle.sh                             |  4 ++--
 Dockerfile => moodle/Dockerfile               | 23 +++++++------------
 moodle_backup.sql => moodle/moodle_backup.sql |  0
 6 files changed, 12 insertions(+), 45 deletions(-)
 delete mode 100755 asystgrade/db/access.php
 delete mode 100755 asystgrade/db/install.xml
 rename Dockerfile => moodle/Dockerfile (82%)
 mode change 100755 => 100644
 rename moodle_backup.sql => moodle/moodle_backup.sql (100%)

diff --git a/asystgrade/db/access.php b/asystgrade/db/access.php
deleted file mode 100755
index fbb0f7b..0000000
--- a/asystgrade/db/access.php
+++ /dev/null
@@ -1,4 +0,0 @@
-defined('MOODLE_INTERNAL') || die();
-
-$capabilities = array(
-);
\ No newline at end of file
diff --git a/asystgrade/db/install.xml b/asystgrade/db/install.xml
deleted file mode 100755
index 16dcbb9..0000000
--- a/asystgrade/db/install.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<XMLDB PATH="local/asystgrade/db" VERSION="2024032201" COMMENT="XMLDB file for mod asystgrade plugin"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd"
->
-    <TABLES>
-        <TABLE NAME="local_asystgrade" COMMENT="Table for storing asystgrade data">
-            <FIELDS>
-                <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true"/>
-                <FIELD NAME="question" TYPE="text" NOTNULL="true"/>
-                <FIELD NAME="referenceanswer" TYPE="text" NOTNULL="true"/>
-                <FIELD NAME="studentanswer" TYPE="text" NOTNULL="true"/>
-                <FIELD NAME="observed_grade" TYPE="int" LENGTH="3" NOTNULL="true"/>
-                <FIELD NAME="studentid" TYPE="int" LENGTH="10" NOTNULL="false"/>
-                <FIELD NAME="recordid" TYPE="int" LENGTH="10" NOTNULL="false"/>
-            </FIELDS>
-            <KEYS>
-                <KEY NAME="primary" TYPE="primary" FIELDS="id"/>
-            </KEYS>
-        </TABLE>
-    </TABLES>
-</XMLDB>
diff --git a/docker-compose.yml b/docker-compose.yml
index fdc50d3..f06e28d 100755
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -23,7 +23,7 @@ services:
       - ./.env
     restart: always
     build:  # Building own Moodle container from Dockerfile.
-      context: .  # The context of the build (where is Dockerfile)
+      context: ./moodle  # The context of the build (where is Dockerfile)
       dockerfile: Dockerfile
       args:
         - MOODLE_BASE_DIR=${MOODLE_BASE_DIR}
@@ -50,7 +50,7 @@ services:
 
   flask:
     build:
-      context: ./flask  # Папка с Dockerfile для Flask
+      context: ./flask  # The context of the Flask build (where is Dockerfile)
       dockerfile: Dockerfile
     env_file:
       - ./.env
diff --git a/install_moodle.sh b/install_moodle.sh
index 3d898c6..0f68f2f 100755
--- a/install_moodle.sh
+++ b/install_moodle.sh
@@ -36,12 +36,12 @@ docker-compose exec moodle php ${MOODLE_BASE_DIR}/admin/cli/install.php \
                                --non-interactive
 
 # Check if database backup exists and restore it if it does
- BACKUP_FILE="moodle_backup.sql"
+ BACKUP_FILE="moodle/moodle_backup.sql"
  if [ -f "$BACKUP_FILE" ]; then
  #    docker-compose exec mariadb apt-get update && apt-get install -y mysql-client && rm -rf /var/lib/apt/lists/*
      docker-compose exec mariadb bash -c "apt-get update && apt-get install -y mysql-client && rm -rf /var/lib/apt/lists/*"
      echo "Database backup found. Restoring..."
-     docker-compose exec -T mariadb mysql -u ${MOODLE_DATABASE_USER} -p${MOODLE_DATABASE_PASSWORD} ${MOODLE_DATABASE_NAME} < moodle_backup.sql
+     docker-compose exec -T mariadb mysql -u ${MOODLE_DATABASE_USER} -p${MOODLE_DATABASE_PASSWORD} ${MOODLE_DATABASE_NAME} < moodle/moodle_backup.sql
      echo "Database restored from backup."
  else
      echo "No database backup found. Skipping restore."
diff --git a/Dockerfile b/moodle/Dockerfile
old mode 100755
new mode 100644
similarity index 82%
rename from Dockerfile
rename to moodle/Dockerfile
index 408b6a4..e80c721
--- a/Dockerfile
+++ b/moodle/Dockerfile
@@ -21,30 +21,24 @@ RUN apt-get update && apt-get upgrade -y && \
     apt-get clean && rm -rf /var/lib/apt/lists/*
 
 # Setting necessary php params
-#RUN echo "mysql.default_socket=/run/mysqld/mysqld.sock" >> /etc/php/8.2/cli/php.ini
 RUN echo "mysql.default_socket=/run/mysqld/mysqld.sock" >> /etc/php/8.2/apache2/php.ini
 RUN echo "max_input_vars = 5000" >> /etc/php/8.2/apache2/php.ini
 RUN echo "max_input_vars = 5000" >> /etc/php/8.2/cli/php.ini
 
 # Setting Xdebug
-#RUN echo "zend_extension=xdebug.so" >> /etc/php/8.2/apache2/php.ini
-#RUN echo "xdebug.mode=debug" >> /etc/php/8.2/apache2/php.ini
-#RUN echo "xdebug.start_with_request=yes" >> /etc/php/8.2/apache2/php.ini
-#RUN echo "xdebug.client_host=host.docker.internal" >> /etc/php/8.2/apache2/php.ini
-#RUN echo "xdebug.client_port=9003" >> /etc/php/8.2/apache2/php.ini
+RUN echo "zend_extension=xdebug.so" >> /etc/php/8.2/apache2/php.ini
+RUN echo "xdebug.mode=debug" >> /etc/php/8.2/apache2/php.ini
+RUN echo "xdebug.start_with_request=yes" >> /etc/php/8.2/apache2/php.ini
+RUN echo "xdebug.client_host=host.docker.internal" >> /etc/php/8.2/apache2/php.ini
+RUN echo "xdebug.client_port=9003" >> /etc/php/8.2/apache2/php.ini
 
 RUN chmod 1777 /tmp
 
-# Installing Moodle Setting correct acces rules
-#RUN cd /var/www/html && mkdir -p moodle
-#RUN mkdir -p ${MOODLE_BASE_DIR}
 RUN echo ${MOODLE_BASE_DIR}
 RUN mkdir -p /var/www/html/moodle
 WORKDIR ${MOODLE_BASE_DIR}
 
-#RUN #mkdir -p ${MOODLE_BASE_DIR} && \
 RUN wget -qO-  https://packaging.moodle.org/stable403/moodle-4.3.4.tgz | tar xz -C ${MOODLE_BASE_DIR} --strip-components=1
-#RUN wget -qO- https://packaging.moodle.org/stable403/moodle-4.3.4.tgz | tar xz --strip-components=1 -C /var/www/html/moodle
 
 
 RUN chown -R www-data:www-data ${MOODLE_BASE_DIR} && \
@@ -55,10 +49,10 @@ RUN chown -R www-data:www-data ${MOODLE_BASE_DIR} && \
     chmod -R 755 ${MOODLE_BASE_DIR_DATA}
 
 # Copying of beeing developed Plugin
-COPY asystgrade ${MOODLE_BASE_DIR}/local/asystgrade
+RUN echo ${MOODLE_BASE_DIR}
+RUN mkdir ${MOODLE_BASE_DIR}/local/asystgrade
 
 # Setting correct acces rules for Plugin
-#RUN chown -R www-data:www-data ${MOODLE_BASE_DIR}/local/asystgrade && \
 RUN chmod -R 755 ${MOODLE_BASE_DIR}/local/asystgrade
 
 # Making Symlink for MariaDB Socket
@@ -127,8 +121,7 @@ RUN a2enmod ssl
 #RUN echo "127.0.0.1 ${MOODLE_WWWROOT##https://}" >> /etc/hosts
 
 #Opening ports
-#EXPOSE 80 443 5000
 EXPOSE 80 443
 
 # Running supervisord
-CMD ["apache2ctl", "-D", "FOREGROUND"]
+CMD ["apache2ctl", "-D", "FOREGROUND"]
\ No newline at end of file
diff --git a/moodle_backup.sql b/moodle/moodle_backup.sql
similarity index 100%
rename from moodle_backup.sql
rename to moodle/moodle_backup.sql
-- 
GitLab