From 1e671cd5883f2e4c312e7d810dfacca7f1784783 Mon Sep 17 00:00:00 2001 From: Didier 'OdyX' Raboud Date: Tue, 7 Jan 2020 12:44:19 +0100 Subject: [PATCH 1/5] Enable theme developement side-image --- bin/moodle-docker-compose | 6 ++++++ themedevel.yml | 25 +++++++++++++++++++++++++ traefik.yml | 8 ++++++++ 3 files changed, 39 insertions(+) create mode 100644 themedevel.yml diff --git a/bin/moodle-docker-compose b/bin/moodle-docker-compose index bb9ff29af22..f82da77db54 100755 --- a/bin/moodle-docker-compose +++ b/bin/moodle-docker-compose @@ -31,6 +31,12 @@ dockercompose="${dockercompose} -f ${basedir}/service.mail.yml" # PHP Version. export MOODLE_DOCKER_PHP_VERSION=${MOODLE_DOCKER_PHP_VERSION:-7.2} +# Enable Theme developement mode (specify the theme _name_ in that variable +if [ -n "$MOODLE_DOCKER_THEMEDEVEL" ]; +then + dockercompose="${dockercompose} -f ${basedir}/themedevel.yml" +fi + # Enable Traefik if [ -n "$MOODLE_DOCKER_TRAEFIK" ]; then diff --git a/themedevel.yml b/themedevel.yml new file mode 100644 index 00000000000..b5ba82ffe0a --- /dev/null +++ b/themedevel.yml @@ -0,0 +1,25 @@ +version: "2" +services: + themedevel: + image: "node:latest" + depends_on: + - webserver + volumes: + - "${MOODLE_DOCKER_WWWROOT}:/var/www/html" + working_dir: /var/www/html/theme/${MOODLE_DOCKER_THEMEDEVEL} + command: bash -c "npm install && npm run start" + ports: + - 3000 + - 3001 + environment: + - MOODLE_DOCKER_THEMEDEVEL=${MOODLE_DOCKER_THEMEDEVEL} + - MOODLE_DOCKER_BROWSERSYNC_WEBHOST=browsersync.${MOODLE_DOCKER_WEB_HOST} + - MOODLE_DOCKER_WEBSERVER_INTERNAL=webserver_for_themedevel + webserver: + environment: + - MOODLE_DOCKER_THEMEDEVEL=${MOODLE_DOCKER_THEMEDEVEL} + - MOODLE_DOCKER_BROWSERSYNC_WEBHOST=browsersync.${MOODLE_DOCKER_WEB_HOST} + networks: + default: + aliases: + - webserver_for_themedevel diff --git a/traefik.yml b/traefik.yml index 3fda8fb3b25..ede4b74fb06 100644 --- a/traefik.yml +++ b/traefik.yml @@ -11,6 +11,14 @@ services: networks: - default - pontsun + themedevel: + labels: + - "traefik.enable=true" + - "traefik.frontend.rule=Host:browsersync.${MOODLE_DOCKER_WEB_HOST}" + - 'traefik.docker.network=pontsun' + networks: + - default + - pontsun exttests: networks: - default From a3118584ce7fb88852076fe667069bad3774dd3a Mon Sep 17 00:00:00 2001 From: Didier 'OdyX' Raboud Date: Tue, 7 Jan 2020 12:49:43 +0100 Subject: [PATCH 2/5] Also configure config.php correctly for themedevel --- config.docker-template.php | 14 ++++++++++++++ themedevel.yml | 7 +++++++ traefik.yml | 8 -------- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/config.docker-template.php b/config.docker-template.php index 00597b8345e..39326145b8b 100755 --- a/config.docker-template.php +++ b/config.docker-template.php @@ -27,6 +27,20 @@ } else if (!empty($port)) { $CFG->wwwroot .= ":{$port}"; } + +$themedevel = getenv('MOODLE_DOCKER_THEMEDEVEL'); +if (!empty($themedevel)) { + $CFG->theme = $themedevel; + $CFG->devel_custom_additional_head = ''; + + $webhost = getenv('MOODLE_DOCKER_BROWSERSYNC_WEBHOST'); + if (!empty($webhost)) { + $CFG->browsersyncurl = 'https://'.$webhost; + $CFG->wwwroot = 'https://'.$webhost; + $CFG->reverseproxy = true; + } +} + $CFG->dataroot = '/var/www/moodledata'; $CFG->admin = 'admin'; $CFG->directorypermissions = 0777; diff --git a/themedevel.yml b/themedevel.yml index b5ba82ffe0a..795374b2f69 100644 --- a/themedevel.yml +++ b/themedevel.yml @@ -15,6 +15,13 @@ services: - MOODLE_DOCKER_THEMEDEVEL=${MOODLE_DOCKER_THEMEDEVEL} - MOODLE_DOCKER_BROWSERSYNC_WEBHOST=browsersync.${MOODLE_DOCKER_WEB_HOST} - MOODLE_DOCKER_WEBSERVER_INTERNAL=webserver_for_themedevel + labels: + - "traefik.enable=true" + - "traefik.frontend.rule=Host:browsersync.${MOODLE_DOCKER_WEB_HOST}" + - 'traefik.docker.network=pontsun' + networks: + - default + - pontsun webserver: environment: - MOODLE_DOCKER_THEMEDEVEL=${MOODLE_DOCKER_THEMEDEVEL} diff --git a/traefik.yml b/traefik.yml index ede4b74fb06..3fda8fb3b25 100644 --- a/traefik.yml +++ b/traefik.yml @@ -11,14 +11,6 @@ services: networks: - default - pontsun - themedevel: - labels: - - "traefik.enable=true" - - "traefik.frontend.rule=Host:browsersync.${MOODLE_DOCKER_WEB_HOST}" - - 'traefik.docker.network=pontsun' - networks: - - default - - pontsun exttests: networks: - default From 1156c96c869bfb894d85fca0c8c12612be9db429 Mon Sep 17 00:00:00 2001 From: Didier 'OdyX' Raboud Date: Tue, 7 Jan 2020 18:02:47 +0100 Subject: [PATCH 3/5] Parse themedevel in projectinfo.yml too --- bin/moodle-compose | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/moodle-compose b/bin/moodle-compose index 73fd843a852..8bcf31abb95 100755 --- a/bin/moodle-compose +++ b/bin/moodle-compose @@ -30,6 +30,7 @@ fi # Moodle instance settings if [ -r "$MOODLE_DOCKER_WWWROOT/projectinfo.yml" ]; then MOODLE_CODENAME=$(grep -e '^codename' "$MOODLE_DOCKER_WWWROOT/projectinfo.yml" | awk -F ': ' '{print $2}') + MOODLE_DOCKER_THEMEDEVEL=$(grep -e '^themedevel' "$MOODLE_DOCKER_WWWROOT/projectinfo.yml" | awk -F ': ' '{print $2}') fi if [ -z "${MOODLE_CODENAME}" ]; then @@ -41,6 +42,7 @@ if [ -z "${MOODLE_CODENAME}" ]; then fi export MOODLE_CODENAME=${MOODLE_CODENAME} +export MOODLE_DOCKER_THEMEDEVEL=${MOODLE_DOCKER_THEMEDEVEL:-} # Related to Moodle export MOODLE_DOCKER_DB=${MOODLE_DOCKER_DB:-pgsql} From 704175c89ffcbd01d445e298aedc13fea450aa27 Mon Sep 17 00:00:00 2001 From: Didier 'OdyX' Raboud Date: Wed, 8 Jan 2020 14:52:54 +0100 Subject: [PATCH 4/5] Use a volume for theme build artifacts --- themedevel.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/themedevel.yml b/themedevel.yml index 795374b2f69..ec2dca50a27 100644 --- a/themedevel.yml +++ b/themedevel.yml @@ -6,6 +6,8 @@ services: - webserver volumes: - "${MOODLE_DOCKER_WWWROOT}:/var/www/html" + - "/var/www/html/theme/${MOODLE_DOCKER_THEMEDEVEL}/node_modules" + - "themebuild:/var/www/html/theme/${MOODLE_DOCKER_THEMEDEVEL}/build" working_dir: /var/www/html/theme/${MOODLE_DOCKER_THEMEDEVEL} command: bash -c "npm install && npm run start" ports: @@ -30,3 +32,7 @@ services: default: aliases: - webserver_for_themedevel + volumes: + - "themebuild:/var/www/html/theme/${MOODLE_DOCKER_THEMEDEVEL}/build" +volumes: + themebuild: From 97fd6b5006ec0b03e007e163a249f96b6fa3784a Mon Sep 17 00:00:00 2001 From: Didier 'OdyX' Raboud Date: Wed, 5 May 2021 13:21:17 +0200 Subject: [PATCH 5/5] node-sass doesn't support node 16 --- themedevel.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themedevel.yml b/themedevel.yml index ec2dca50a27..57ca60bfc64 100644 --- a/themedevel.yml +++ b/themedevel.yml @@ -1,7 +1,7 @@ version: "2" services: themedevel: - image: "node:latest" + image: "node:15" # node-sass doesn't support node 16 https://github.com/sass/node-sass/issues/3077 depends_on: - webserver volumes: