Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare app config for 4.4.0 #281

Merged
merged 4 commits into from
Mar 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 17 additions & 20 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -224,24 +224,24 @@ jobs:
include:
# PostgreSQL (highest, lowest php supported)
# First tests are for app developers.
- { branch: MOODLE_403_STABLE, php: "8.2", database: pgsql, runtime: ionic5, suite: app-development, app-version: "latest"}
- { branch: MOODLE_403_STABLE, php: "8.0", database: pgsql, runtime: ionic5, suite: app-development, app-version: "latest"}
- { branch: MOODLE_403_STABLE, php: "8.2", database: pgsql, runtime: ionic5, suite: app-development, app-version: "main" }
- { branch: MOODLE_403_STABLE, php: "8.0", database: pgsql, runtime: ionic5, suite: app-development, app-version: "main" }
- { branch: MOODLE_403_STABLE, php: "8.2", suite: app-development, app-version: "latest" }
- { branch: MOODLE_403_STABLE, php: "8.0", suite: app-development, app-version: "latest" }
- { branch: MOODLE_403_STABLE, php: "8.2", suite: app-development, app-version: "main" }
- { branch: MOODLE_403_STABLE, php: "8.0", suite: app-development, app-version: "main" }
# Tests for Moodle plugin developers who want to test against the next version of the app.
- { branch: MOODLE_403_STABLE, php: "8.2", database: pgsql, runtime: ionic5, suite: app, app-version: "next-dev"}
- { branch: MOODLE_403_STABLE, php: "8.0", database: pgsql, runtime: ionic5, suite: app, app-version: "next-dev"}
- { branch: MOODLE_403_STABLE, php: "8.2", suite: app, app-version: "next-test" }
- { branch: MOODLE_403_STABLE, php: "8.0", suite: app, app-version: "next-test" }
# Tests for Moodle plugin developers testing against all supported versions of Moodle.
- { branch: MOODLE_403_STABLE, php: "8.2", database: pgsql, runtime: ionic5, suite: app, app-version: "latest-dev"}
- { branch: MOODLE_403_STABLE, php: "8.0", database: pgsql, runtime: ionic5, suite: app, app-version: "latest-dev"}
- { branch: MOODLE_402_STABLE, php: "8.2", database: pgsql, runtime: ionic5, suite: app, app-version: "latest-dev"}
- { branch: MOODLE_402_STABLE, php: "8.0", database: pgsql, runtime: ionic5, suite: app, app-version: "latest-dev"}
- { branch: MOODLE_401_STABLE, php: "8.1", database: pgsql, runtime: ionic5, suite: app, app-version: "latest-dev"}
- { branch: MOODLE_401_STABLE, php: "7.4", database: pgsql, runtime: ionic5, suite: app, app-version: "latest-dev"}
- { branch: MOODLE_400_STABLE, php: "8.0", database: pgsql, runtime: ionic5, suite: app, app-version: "latest-dev"}
- { branch: MOODLE_400_STABLE, php: "7.3", database: pgsql, runtime: ionic5, suite: app, app-version: "latest-dev"}
- { branch: MOODLE_311_STABLE, php: "8.0", database: pgsql, runtime: ionic5, suite: app, app-version: "latest-dev"}
- { branch: MOODLE_311_STABLE, php: "7.3", database: pgsql, runtime: ionic5, suite: app, app-version: "latest-dev"}
- { branch: MOODLE_403_STABLE, php: "8.2", suite: app, app-version: "latest-test" }
- { branch: MOODLE_403_STABLE, php: "8.0", suite: app, app-version: "latest-test" }
- { branch: MOODLE_402_STABLE, php: "8.2", suite: app, app-version: "latest-test" }
- { branch: MOODLE_402_STABLE, php: "8.0", suite: app, app-version: "latest-test" }
- { branch: MOODLE_401_STABLE, php: "8.1", suite: app, app-version: "latest-test" }
- { branch: MOODLE_401_STABLE, php: "7.4", suite: app, app-version: "latest-test" }
- { branch: MOODLE_400_STABLE, php: "8.0", suite: app, app-version: "latest-test" }
- { branch: MOODLE_400_STABLE, php: "7.3", suite: app, app-version: "latest-test" }
- { branch: MOODLE_311_STABLE, php: "8.0", suite: app, app-version: "latest-test" }
- { branch: MOODLE_311_STABLE, php: "7.3", suite: app, app-version: "latest-test" }

steps:
- name: Checking out moodle-docker
Expand All @@ -257,22 +257,19 @@ jobs:
- name: Prepare moodle-docker environment
run: |
cp config.docker-template.php moodle/config.php
export MOODLE_DOCKER_DB="${{ matrix.database }}"
export MOODLE_DOCKER_PHP_VERSION="${{ matrix.php }}"
export SUITE="${{ matrix.suite }}"
export RUNTIME="${{ matrix.runtime }}"
export MOODLE_DOCKER_APP_VERSION="${{ matrix.app-version }}"
tests/app-setup.sh

- name: Run moodle-docker tests
run: |
export MOODLE_DOCKER_DB="${{ matrix.database }}"
export MOODLE_DOCKER_APP_VERSION="${{ matrix.app-version }}"
export SUITE="${{ matrix.suite }}"
tests/app-test.sh

- name: Stop moodle-docker
run: |
export MOODLE_DOCKER_DB="${{ matrix.database }}"
export SUITE="${{ matrix.suite }}"
export MOODLE_DOCKER_APP_VERSION="${{ matrix.app-version }}"
tests/app-teardown.sh
8 changes: 3 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,9 +141,9 @@ In order to run Behat tests for the Moodle App, you need to install the [local_m

The Behat tests will be run against a container serving the mobile application, you have two options here:

1. Use a Docker image that includes the application code. You need to specify the `MOODLE_DOCKER_APP_VERSION` env variable and the [moodlehq/moodleapp](https://hub.docker.com/r/moodlehq/moodleapp) image will be downloaded from Docker Hub. You can read about the available images in [Moodle App Docker Images](https://docs.moodle.org/dev/Moodle_App_Docker_Images) (for Behat, you'll want to run the ones with the `-test` suffix).
1. Use a Docker image that includes the application code. You need to specify the `MOODLE_DOCKER_APP_VERSION` env variable and the [moodlehq/moodleapp](https://hub.docker.com/r/moodlehq/moodleapp) image will be downloaded from Docker Hub. You can read about the available images in [Moodle App Docker Images](https://moodledev.io/general/app/development/setup/docker-images) (for Behat, you'll want to run the ones with the `-test` suffix).

2. Use a local copy of the application code and serve it through Docker, similar to how the Moodle site is being served. Set the `MOODLE_DOCKER_APP_PATH` env variable to the codebase in you file system. This will assume that you've already initialized the app calling `npm install` and `npm run setup` locally.
2. Use a local copy of the application code and serve it through Docker, similar to how the Moodle site is being served. Set the `MOODLE_DOCKER_APP_PATH` env variable to the codebase in you file system. This will assume that you've already initialized the app calling `npm install` locally.

For both options, you also need to set `MOODLE_DOCKER_BROWSER` to "chrome".

Expand Down Expand Up @@ -175,7 +175,7 @@ If you are going with the second option, this *can* be used for local developmen
By all means, if you don't want to have npm installed locally you can go full Docker executing the following commands before starting the containers:

```
docker run --volume $MOODLE_DOCKER_APP_PATH:/app --workdir /app bash -c "npm install npm@7 -g && npm ci"
docker run --volume $MOODLE_DOCKER_APP_PATH:/app --workdir /app bash -c "npm install"
```

You can learn more about writing tests for the app in [Acceptance testing for the Moodle App](https://moodledev.io/general/app/development/testing/acceptance-testing).
Expand Down Expand Up @@ -223,8 +223,6 @@ When you change them, use `bin/moodle-docker-compose down && bin/moodle-docker-c
| `MOODLE_DOCKER_SELENIUM_VNC_PORT` | no | any integer value (or bind_ip:integer)| not set | If set, the selenium node will expose a vnc session on the port specified. Similar to MOODLE_DOCKER_WEB_PORT, you can optionally define the host IP to bind to. If you just set the port, VNC binds to 127.0.0.1 |
| `MOODLE_DOCKER_APP_PATH` | no | path on your file system | not set | If set and the chrome browser is selected, it will start an instance of the Moodle app from your local codebase |
| `MOODLE_DOCKER_APP_VERSION` | no | a valid [app docker image version](https://docs.moodle.org/dev/Moodle_App_Docker_images) | not set | If set will start an instance of the Moodle app if the chrome browser is selected |
| `MOODLE_DOCKER_APP_RUNTIME` | no | 'ionic3' or 'ionic5' | not set | Set this to indicate the runtime being used in the Moodle app. In most cases, this can be ignored because the runtime is guessed automatically (except on Windows using the `.cmd` binary). In case you need to set it manually and you're not sure which one it is, versions 3.9.5 and later should be using Ionic 5. |
| `MOODLE_DOCKER_APP_NODE_VERSION` | no | [node](https://hub.docker.com/_/node) image version tag | not set | Node version to run the app. In most cases, this can be ignored because the version is parsed from the project's `.nvmrc` file. This will only be used when the runtime is `ionic5` and the app is running from the local filesystem. |

## Local customisations

Expand Down
77 changes: 47 additions & 30 deletions bin/moodle-docker-compose
Original file line number Diff line number Diff line change
Expand Up @@ -64,17 +64,6 @@ then
fi
fi

# Fix mobile app deprecated variables
if [ ! -z "$MOODLE_APP_VERSION" ];
then
echo 'Warning: $MOODLE_APP_VERSION is deprecated, use $MOODLE_DOCKER_APP_VERSION instead'

if [ -z "$MOODLE_DOCKER_APP_VERSION" ];
then
export MOODLE_DOCKER_APP_VERSION="$MOODLE_APP_VERSION"
fi
fi

# Guess mobile app runtime
if [ -z "$MOODLE_DOCKER_APP_RUNTIME" ];
then
Expand All @@ -92,33 +81,52 @@ then
then
appmajorversion="$(echo $appversion | grep -oP '\d(?=\.\d\.\d{1,2})')"
appminorversion="$(echo $appversion | grep -oP '\d\.\K\d(?=\.\d{1,2})')"
apppatchversion="$(echo $appversion | grep -oP '\d\.\d\.\K\d{1,2}')"

if (( $appmajorversion > 3 ));
then
export MOODLE_DOCKER_APP_RUNTIME="ionic5"
elif (( $appminorversion != 9));
if (( $appmajorversion > 4 || $appminorversion > 3));
then
export MOODLE_DOCKER_APP_RUNTIME="ionic3"
elif (( $apppatchversion < 5 ));
then
export MOODLE_DOCKER_APP_RUNTIME="ionic3"
export MOODLE_DOCKER_APP_RUNTIME="ionic7"
else
export MOODLE_DOCKER_APP_RUNTIME="ionic5"
fi
else
export MOODLE_DOCKER_APP_RUNTIME="ionic5"
# TODO always default to ionic7 after 4.4.0 release
if [[ $appversion = "latest"* ]];
then
export MOODLE_DOCKER_APP_RUNTIME="ionic5"
else
export MOODLE_DOCKER_APP_RUNTIME="ionic7"
fi
fi
fi
fi

# Guess mobile app node version
if [[ -z "$MOODLE_DOCKER_APP_NODE_VERSION" ]] && [[ ! -z "$MOODLE_DOCKER_APP_PATH" ]] && [[ "$MOODLE_DOCKER_APP_RUNTIME" == "ionic5" ]];
# Guess mobile app node version (only for local app development)
if [[ -z "$MOODLE_DOCKER_APP_NODE_VERSION" ]] && [[ ! -z "$MOODLE_DOCKER_APP_PATH" ]];
then
if [ -f "$MOODLE_DOCKER_APP_PATH/.nvmrc" ]; then
appnodeversion="$(cat $MOODLE_DOCKER_APP_PATH/.nvmrc | grep -oP '(\d+\.?)+' || true)"
appnodeversion="$(cat $MOODLE_DOCKER_APP_PATH/.nvmrc | grep -oP '(\d+\.?)+' || true)"

export MOODLE_DOCKER_APP_NODE_VERSION="$appnodeversion"
fi

export MOODLE_DOCKER_APP_NODE_VERSION="$appnodeversion"
# Guess mobile app port (only when using Docker app images)
if [[ -z "$MOODLE_DOCKER_APP_PORT" ]] && [[ ! -z "$MOODLE_DOCKER_APP_VERSION" ]];
then
if [[ "$MOODLE_DOCKER_APP_RUNTIME" = "ionic5" ]];
then
export MOODLE_DOCKER_APP_PORT="80"
else
export MOODLE_DOCKER_APP_PORT="443"
fi
fi

# Guess mobile app protocol
if [[ -z "$MOODLE_DOCKER_APP_PROTOCOL" ]];
then
if [[ "$MOODLE_DOCKER_APP_RUNTIME" = "ionic5" ]];
then
export MOODLE_DOCKER_APP_PROTOCOL="http"
else
export MOODLE_DOCKER_APP_PROTOCOL="https"
fi
fi

Expand All @@ -139,7 +147,12 @@ then
MOODLE_DOCKER_BROWSER_TAG=3
elif [[ "$MOODLE_DOCKER_BROWSER_NAME" = "chrome" ]];
then
MOODLE_DOCKER_BROWSER_TAG=3
if [[ "$MOODLE_DOCKER_APP_RUNTIME" = "ionic5" ]];
then
MOODLE_DOCKER_BROWSER_TAG=3
else
MOODLE_DOCKER_BROWSER_TAG="120.0"
fi
fi
fi

Expand All @@ -148,11 +161,11 @@ if [[ "$MOODLE_DOCKER_BROWSER_NAME" == "chrome" ]];
then
if [[ ! -z "$MOODLE_DOCKER_APP_PATH" ]];
then
dockercompose="${dockercompose} -f ${basedir}/moodle-app-dev-$MOODLE_DOCKER_APP_RUNTIME.yml"
dockercompose="${dockercompose} -f ${basedir}/moodle-app-dev.yml"
elif [[ ! -z "$MOODLE_DOCKER_APP_VERSION" ]];
then
# Mobile app using a docker image
dockercompose="${dockercompose} -f ${basedir}/moodle-app-$MOODLE_DOCKER_APP_RUNTIME.yml"
dockercompose="${dockercompose} -f ${basedir}/moodle-app.yml"
fi
fi

Expand All @@ -165,7 +178,11 @@ fi
export MOODLE_DOCKER_SELENIUM_SUFFIX=""
if [[ $MOODLE_DOCKER_SELENIUM_VNC_PORT == *":"* ]] || [[ $MOODLE_DOCKER_SELENIUM_VNC_PORT -gt 0 ]]
then
export MOODLE_DOCKER_SELENIUM_SUFFIX="-debug"
if [[ $(echo $MOODLE_DOCKER_BROWSER_TAG | sed 's/[^0-9].*//g') -lt 4 ]]
then
export MOODLE_DOCKER_SELENIUM_SUFFIX="-debug"
fi

# If no bind ip has been configured (bind_ip:port), default to 127.0.0.1
if [[ ! $MOODLE_DOCKER_SELENIUM_VNC_PORT == *":"* ]]
then
Expand Down
62 changes: 39 additions & 23 deletions bin/moodle-docker-compose.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -52,35 +52,45 @@ IF "%MOODLE_DOCKER_DB_PORT%"=="" (
)
)

IF NOT "%MOODLE_APP_VERSION%"=="" (
ECHO Warning: MOODLE_APP_VERSION is deprecated, use MOODLE_DOCKER_APP_VERSION instead

IF "%MOODLE_DOCKER_APP_VERSION%"=="" (
SET MOODLE_DOCKER_APP_VERSION=%MOODLE_APP_VERSION%
)
)

IF "%MOODLE_DOCKER_APP_RUNTIME%"=="" (
SET MOODLE_DOCKER_APP_RUNTIME=ionic5
SET MOODLE_DOCKER_APP_RUNTIME=ionic7
)

REM Guess mobile app node version
REM Guess mobile app node version (only for local app development)
IF "%MOODLE_DOCKER_APP_NODE_VERSION%"=="" (
IF NOT "%MOODLE_DOCKER_APP_PATH%"=="" (
IF "%MOODLE_DOCKER_APP_RUNTIME%"=="ionic5" (
SET filenvmrc=%MOODLE_DOCKER_APP_PATH%\.nvmrc
IF EXIST "%filenvmrc%" (
SET /p NODE_VERSION=< "%filenvmrc%"
SET NODE_VERSION=%NODE_VERSION:v=%
ECHO %NODE_VERSION% | FINDSTR /r "[0-9.]*" >nul 2>&1
IF ERRORLEVEL 0 (
SET MOODLE_DOCKER_APP_NODE_VERSION=%NODE_VERSION%
)
SET filenvmrc=%MOODLE_DOCKER_APP_PATH%\.nvmrc
IF EXIST "%filenvmrc%" (
SET /p NODE_VERSION=< "%filenvmrc%"
SET NODE_VERSION=%NODE_VERSION:v=%
ECHO %NODE_VERSION% | FINDSTR /r "[0-9.]*" >nul 2>&1
IF ERRORLEVEL 0 (
SET MOODLE_DOCKER_APP_NODE_VERSION=%NODE_VERSION%
)
)
)
)

REM Guess mobile app port (only when using Docker app images)
IF "%MOODLE_DOCKER_APP_PORT%"=="" (
IF NOT "%MOODLE_DOCKER_APP_VERSION%"=="" (
IF "%MOODLE_DOCKER_APP_RUNTIME%"=="ionic5" (
SET MOODLE_DOCKER_APP_PORT=80
) ELSE (
SET MOODLE_DOCKER_APP_PORT=443
)
)
)

REM Guess mobile app protocol
IF "%MOODLE_DOCKER_APP_PROTOCOL%"=="" (
if "%MOODLE_DOCKER_APP_RUNTIME%"=="ionic5" (
SET MOODLE_DOCKER_APP_PROTOCOL=http
) ELSE (
SET MOODLE_DOCKER_APP_PROTOCOL=https
)
)

IF NOT "%MOODLE_DOCKER_BROWSER%"=="" (
REM Split MOODLE_DOCKER_BROWSER by : to get selenium tag if sepecified
FOR /f "tokens=1,2 delims=:" %%i in ("%MOODLE_DOCKER_BROWSER%") do (
Expand All @@ -98,15 +108,19 @@ IF "%MOODLE_DOCKER_BROWSER_TAG%"=="" (
SET MOODLE_DOCKER_BROWSER_TAG=3
)
IF "%MOODLE_DOCKER_BROWSER_NAME%"=="chrome" (
SET MOODLE_DOCKER_BROWSER_TAG=3
IF "%MOODLE_DOCKER_APP_RUNTIME%"=="ionic5" (
SET MOODLE_DOCKER_BROWSER_TAG=3
) ELSE (
SET MOODLE_DOCKER_BROWSER_TAG=120.0
)
)
)

IF "%MOODLE_DOCKER_BROWSER_NAME%"=="chrome" (
IF NOT "%MOODLE_DOCKER_APP_PATH%"=="" (
SET DOCKERCOMPOSE=%DOCKERCOMPOSE% -f "%BASEDIR%\moodle-app-dev-%MOODLE_DOCKER_APP_RUNTIME%.yml"
SET DOCKERCOMPOSE=%DOCKERCOMPOSE% -f "%BASEDIR%\moodle-app-dev.yml"
) ELSE IF NOT "%MOODLE_DOCKER_APP_VERSION%"=="" (
SET DOCKERCOMPOSE=%DOCKERCOMPOSE% -f "%BASEDIR%\moodle-app-%MOODLE_DOCKER_APP_RUNTIME%.yml"
SET DOCKERCOMPOSE=%DOCKERCOMPOSE% -f "%BASEDIR%\moodle-app.yml"
)
)

Expand Down Expand Up @@ -160,7 +174,9 @@ IF "%MOODLE_DOCKER_SELENIUM_VNC_PORT%"=="" (
IF NOT "%MOODLE_DOCKER_SELENIUM_VNC_PORT%"=="%MOODLE_DOCKER_SELENIUM_VNC_PORT::=%" SET TRUE=1
IF NOT "%MOODLE_DOCKER_SELENIUM_VNC_PORT%"=="0" SET TRUE=1
IF DEFINED TRUE (
SET MOODLE_DOCKER_SELENIUM_SUFFIX=-debug
IF "%MOODLE_DOCKER_BROWSER_TAG%"=="3" (
SET MOODLE_DOCKER_SELENIUM_SUFFIX=-debug
)
SET DOCKERCOMPOSE=%DOCKERCOMPOSE% -f "%BASEDIR%\selenium.debug.yml"
REM If no bind ip has been configured (bind_ip:port), default to 127.0.0.1
IF "%MOODLE_DOCKER_SELENIUM_VNC_PORT%"=="%MOODLE_DOCKER_SELENIUM_VNC_PORT::=%" (
Expand Down
2 changes: 1 addition & 1 deletion bin/moodle-docker-wait-for-app
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ set -e
thisfile=$( readlink "${BASH_SOURCE[0]}" ) || thisfile="${BASH_SOURCE[0]}"
basedir="$( cd "$( dirname "$thisfile" )/../" && pwd -P )"

if [[ ! -z "$MOODLE_DOCKER_BROWSER" ]] && [[ "$MOODLE_DOCKER_BROWSER" == "chrome" ]] && ([[ ! -z "$MOODLE_DOCKER_APP_PATH" ]] || [[ ! -z "$MOODLE_DOCKER_APP_VERSION" ]] || [[ ! -z "$MOODLE_APP_VERSION" ]]);
if [[ ! -z "$MOODLE_DOCKER_BROWSER" ]] && [[ "$MOODLE_DOCKER_BROWSER" == "chrome" ]] && ([[ ! -z "$MOODLE_DOCKER_APP_PATH" ]] || [[ ! -z "$MOODLE_DOCKER_APP_VERSION" ]]);
then
until $basedir/bin/moodle-docker-compose logs moodleapp | grep -q -E 'dev server running: |Angular Live Development Server is listening|Configuration complete; ready for start up';
do
Expand Down
8 changes: 7 additions & 1 deletion config.docker-template.php
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,14 @@

if (getenv('MOODLE_DOCKER_APP')) {
$appport = getenv('MOODLE_DOCKER_APP_PORT') ?: 8100;
$protocol = getenv('MOODLE_DOCKER_APP_PROTOCOL') ?: 'https';

$CFG->behat_ionic_wwwroot = "http://moodleapp:$appport";
$CFG->behat_ionic_wwwroot = "$protocol://moodleapp:$appport";
$CFG->behat_profiles['default']['capabilities'] = [
'extra_capabilities' => [
'chromeOptions' => ['args' => ['--ignore-certificate-errors', '--allow-running-insecure-content']],
],
];
}

if (getenv('MOODLE_DOCKER_PHPUNIT_EXTRAS')) {
Expand Down
19 changes: 0 additions & 19 deletions moodle-app-dev-ionic5.yml

This file was deleted.

5 changes: 3 additions & 2 deletions moodle-app-dev-ionic3.yml → moodle-app-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ services:
webserver:
environment:
MOODLE_DOCKER_APP: "true"
MOODLE_DOCKER_APP_PROTOCOL: ${MOODLE_DOCKER_APP_PROTOCOL}
moodleapp:
image: node:11
image: node:${MOODLE_DOCKER_APP_NODE_VERSION}
working_dir: /app
command: npm run ionic:serve
command: [ "bash", "-c", "git config --global --add safe.directory /app && npm start -- --host 0.0.0.0"]
volumes:
- "${MOODLE_DOCKER_APP_PATH}:/app"
expose:
Expand Down
7 changes: 0 additions & 7 deletions moodle-app-ionic3.yml

This file was deleted.

5 changes: 3 additions & 2 deletions moodle-app-ionic5.yml → moodle-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@ services:
webserver:
environment:
MOODLE_DOCKER_APP: "true"
MOODLE_DOCKER_APP_PORT: 80
MOODLE_DOCKER_APP_PORT: ${MOODLE_DOCKER_APP_PORT}
MOODLE_DOCKER_APP_PROTOCOL: ${MOODLE_DOCKER_APP_PROTOCOL}
moodleapp:
image: "moodlehq/moodleapp:${MOODLE_DOCKER_APP_VERSION}"
ports:
- "8100:80"
- "8100:$MOODLE_DOCKER_APP_PORT"
Loading