我正在开发一个涉及使用 Docker 部署 Moodle 的项目。该设置包括两个 Docker 容器:一个用于数据库 (MariaDB),一个用于 Moodle(我还有一个用于 django 的容器,但我认为与此特定问题无关)。我在 Mac 上开发并测试了容器,一切都按预期运行。然而,当我使用 GitHub 与一位朋友共享该项目,并且他尝试在他的 Windows 笔记本电脑上运行该项目时,他在 Moodle 安装页面中遇到了 JavaScript 错误,而这些错误在我的 Mac 上不会出现。浏览器控制台中显示的主要错误是:
require.min.js:5 Uncaught Error: No define call for core/first
http://requirejs.org/docs/errors.html#nodefine
at makeError (require.min.js:5:1067)
at Object.completeLoad (require.min.js:5:12223)
at HTMLScriptElement.onScriptLoad (require.min.js:5:13016)
makeError @ require.min.js:5
completeLoad @ require.min.js:5
onScriptLoad @ require.min.js:5
load (async)
req.load @ require.min.js:5
load @ require.min.js:5
load @ require.min.js:5
fetch @ require.min.js:5
check @ require.min.js:5
enable @ require.min.js:5
enable @ require.min.js:5
(anonymous) @ require.min.js:5
(anonymous) @ require.min.js:5
each @ require.min.js:5
enable @ require.min.js:5
init @ require.min.js:5
(anonymous) @ require.min.js:5
setTimeout (async)
req.nextTick @ require.min.js:5
o @ require.min.js:5
requirejs @ require.min.js:5
(anonymous) @ editadvanced.php?id=2:2233
editadvanced.php?delayStartupUntil=configured:1 Uncaught SyntaxError: Unexpected token '<' (at editadvanced.php?delayStartupUntil=configured:1:1)
editadvanced.php?id=2:2710 Uncaught TypeError: M.form.shortforms is not a function
at editadvanced.php?id=2:2710:51
at YUI._notify (yui_combo.php?rollup/3.18.1/yui-moodlesimple-min.js:2:1727)
at yui_combo.php?rollup/3.18.1/yui-moodlesimple-min.js:2:1198
at YUI._notify (yui_combo.php?rollup/3.18.1/yui-moodlesimple-min.js:2:1727)
at YUI.T (yui_combo.php?rollup/3.18.1/yui-moodlesimple-min.js:2:2653)
at e.Loader._finish (yui_combo.php?rollup/3.18.1/yui-moodlesimple-min.js:9:5471)
at e.Loader._onSuccess (yui_combo.php?rollup/3.18.1/yui-moodlesimple-min.js:9:5985)
at e.Loader.p (yui_combo.php?rollup/3.18.1/yui-moodlesimple-min.js:10:1933)
at e.Loader.onSuccess (yui_combo.php?rollup/3.18.1/yui-moodlesimple-min.js:10:2733)
at s._finish (yui_combo.php?rollup/3.18.1/yui-moodlesimple-min.js:5:4335)
此错误会导致 JavaScript 无法在安装页面上正确运行。以下是一些其他详细信息:
Docker 版本:我们都使用最新版本的 Docker。 浏览器:该错误发生在他的 Windows 笔记本电脑上的多个浏览器(Chrome、Firefox)上。 配置:我们正在部署的 Moodle 版本是 Moodle 4.4,我们的 Docker 设置包括自定义 .dockerignore 和 Dockerfile 配置,如果需要,我可以分享这些配置。
我尝试更改 gitignore 和 dockerignore,但这并没有解决问题
这是 dockerignore:
# Ignore version control directories
.git/
.gitignore
# Ignore all bytecode compiled files
__pycache__/
*.pyc
*.py[cod]
*$py.class
# Ignore Docker files that are not needed in the build context
Dockerfile
docker-compose.yml
# Ignore virtual environment
venv/
# Ignore any other unnecessary files
*.log
tmp/
local_settings.py
# Distribution / packaging
build/
dist/
*.egg-info/
*.egg
# Development tools
.vscode/
.idea/
# OS generated files
.DS_Store
# Moodle data
moodledata/
我在 Docker 上运行的 Moodle 4.4 也遇到同样的问题。您找到解决方案了吗?你想在这里发布吗?