
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像主要基于MediaWiki官方https://github.com/wikimedia/mediawiki-docker构建,主要修改如下:
通过以下环境变量生成LocalSettings.php并自动安装MediaWiki。若未提供这些变量,需通过安装向导完成配置。更多配置说明参见https://www.mediawiki.org/wiki/Manual:Configuration_settings。
-e MEDIAWIKI_SITE_SERVER=(必填,设置服务器主机及协议,如http://my-wiki:8080;配置$wgServer)-e MEDIAWIKI_SITE_NAME=(默认MediaWiki;配置$wgSitename)-e MEDIAWIKI_SITE_LANG=(默认en;配置$wgLanguageCode)-e MEDIAWIKI_ADMIN_USER=(默认admin;配置默认管理员用户名)-e MEDIAWIKI_ADMIN_PASS=(默认rosebud;配置默认管理员密码)-e MEDIAWIKI_UPDATE=true(默认false;运行php maintenance/update.php)-e MEDIAWIKI_SLEEP=(默认0;延迟容器启动,适用于Docker Compose)-e MEDIAWIKI_EXTENSIONS(默认空;指定启用的扩展,逗号分隔,扩展在镜像构建时安装)-e PARSOID_DOMAIN(默认localhost;Parsoid域名)-e RESTBASE_URL(默认未设置;RestBase实例URL,未设置则不配置)-e LDAP_DOMAIN(默认未设置;LDAP域名,如CWL)-e LDAP_SERVER(默认未设置;LDAP服务器地址)-e LDAP_PORT(默认389;LDAP服务器端口)-e LDAP_ENCRYPTION_TYPE(默认clear;LDAP连接加密类型,可选clear、ldapi、tls、ssl)-e LDAP_BASE_DN(默认ou=Users,ou=LOCAL,dc=domain,dc=local;LDAP搜索基础DN)-e LDAP_USER_BASE_DN(默认ou=Users,ou=LOCAL,dc=domain,dc=local;用户信息LDAP基础DN)-e LDAP_SEARCH_STRINGS(默认未设置;LDAP搜索字符串)-e LDAP_SEARCH_ATTRS(默认未设置;LDAP搜索属性)-e LDAP_PROXY_AGENT(默认未设置;LDAP代理代理)-e LDAP_PROXY_PASSWORD(默认未设置;LDAP代理代理密码)-e LDAP_USERNAME_ATTR(默认cn;用户名LDAP属性)-e LDAP_REALNAME_ATTR(默认displayname;真实姓名LDAP属性)-e LDAP_EMAIL_ATTR(默认mail;电子邮件LDAP属性)-e MEDIAWIKI_MAIN_CACHE(默认CACHE_NONE;主缓存)-e MEDIAWIKI_MEMCACHED_SERVERS(默认[];Memcached服务器列表,逗号分隔,如["memcached:", "memcached1:"])-e UBC_AUTH(默认未设置;设为true启用UBC特定认证扩展)-e AUTO_CREATED_USER_REDIRECT(默认未设置;设为Wiki页面如Main_page,新用户首次通过LDAP登录时重定向至此页面)上述变量将生成MediaWiki所需的LocalSettings.php文件。若挂载共享卷(见下文“共享卷”),生成的LocalSettings.php会自动移至共享卷以便编辑。若数据目录中存在CustomSettings.php,则会在生成的LocalSettings.php末尾添加require('/data/CustomSettings.php');。
bashdocker-compose up
可通过docker-compose.yaml中的环境变量进行定制。
通过以下环境变量连接外部数据库服务器:
-e MEDIAWIKI_DB_TYPE=...(默认mysql,也可设为postgres)-e MEDIAWIKI_DB_HOST=...(默认链接数据库容器的地址)-e MEDIAWIKI_DB_PORT=...(默认链接数据库容器的端口或指定数据库类型的默认端口)-e MEDIAWIKI_DB_USER=...(默认根据数据库类型,mysql为root,postgres为postgres)-e MEDIAWIKI_DB_PASSWORD=...(默认链接数据库容器的密码)-e MEDIAWIKI_DB_NAME=...(默认mediawiki)-e MEDIAWIKI_DB_SCHEMA...(默认mediawiki,仅适用于PostgreSQL)若指定的MEDIAWIKI_DB_NAME在MySQL服务器上不存在,且MEDIAWIKI_DB_USER有足够权限,容器启动时会自动创建该数据库。
连接外部数据库服务器示例:
bashdocker run --name some-mediawiki \ -e MEDIAWIKI_DB_HOST=10.0.0.1 \ -e MEDIAWIKI_DB_PORT=3306 \ -e MEDIAWIKI_DB_USER=app \ -e MEDIAWIKI_DB_PASSWORD=secure \ docker.xuanyuan.run/wikimedia/mediawiki
运行docker run时使用-v参数挂载共享卷,MediaWiki容器会自动查找LocalSettings.php文件及images、skins、extensions文件夹。找到后会创建符号链接,替换默认MediaWiki安装中的对应文件或文件夹。这便于配置(LocalSettings.php)、备份上传文件(images)及定制(skins和extensions)。
强烈建议挂载共享卷,使上传文件和图片存储在容器外部。
默认共享卷需挂载至容器的/data目录,可通过-e MEDIAWIKI_SHARED=/new/data/path修改路径。
若检测到composer.lock和composer.json文件,容器会自动下载https://getcomposer.org并运行`composer install`,用于安装额外扩展、皮肤和依赖。
通过浏览器访问http://localhost:8080或http://host-ip:8080。
首次启动应用:
bashdocker-compose up -d
启动后,运行以下命令添加user_cwl_extended_account_data表:
bashdocker cp ./dev/add_table.sql mediawiki-docker_db_1:/add_table.sql docker exec -it mediawiki-docker_db_1 /bin/bash -c "mysql -u root -ppassword mediawiki < /add_table.sql"
在docker-compose文件中取消注释行- ./LocalSettings.php:/var/www/html/LocalSettings.php。
最后重启所有容器:
bashdocker-compose down docker-compose up -d
使用首选LDAP GUI工具连接LDAP容器,地址localhost:1389,登录名cn=admin,dc=example,dc=org,密码admin。
添加新用户时,确保使用simpleSecurityObject、inetOrgPerson和ubcEdu类。
MediaWiki:Pluggableauth-loginbutton-label(默认标签“Log in with PluggableAuth”)。MediaWiki:Userlogin-helplink2和MediaWiki:Helplogin-url(默认超链接“Help with logging in”指向MediaWiki帮助页面)。MediaWiki:Prefs-help-email(默认消息提及电子邮件用于密码重置,在LDAP认证下不相关)。默认登录和未登录用户的Caliper actor参见https://github.com/ubc/mediawiki-extensions-caliper/blob/master/caliper/actor.php repo的CaliperActor对象。
可通过SetCaliperActorObject钩子定制Caliper actor。本容器在CustomHooks.php中通过SetCaliperActor函数使用此钩子。
默认SetCaliperActor函数使用UBC puid作为标识符,CALIPER_LDAP_ACTOR_HOMEPAGE环境变量作为基础字符串,因此actor标识符格式为CaliperLDAPActorHomepage/LDAP_PUID(如https://www.ubc.ca/SOME_PUID)。可根据机构需求、部署设置和/或授权方式移除该函数并创建自定义函数。
修改容器内文件:
bashdocker exec -it CONTAINER_ID sh vi FILE_TO_CHANGE
可能需要重启容器使修改生效:
bashdocker-compose restart SERVICE_NAME
其中SERVICE_NAME可为docker-compose中的任意服务,如nodeservices、web、db等。容器内的修改会持久化。
REL*分支跟踪上游MediaWiki发布版本。当仓库更新并准备部署时,应创建新标签,格式为BRANCH_NAME + BUILD_NUMBER,如REL1_30_B2或REL1_31_B5,其中BUILD_NUMBER按顺序递增。node-services仓库也遵循相同规则。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 ubcctlt/mediawiki 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: