本镜像主要基于MediaWiki***Docker仓库构建,主要修改如下:
通过以下环境变量生成LocalSettings.php并自动安装MediaWiki。若未提供这些变量,需通过安装向导完成配置。更多配置说明参见Manual:Configuration_settings。
-e MEDIAWIKI_SITE_SERVER=(必填,设置服务器主机及协议,如[***];配置$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 \ 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文件,容器会自动下载composer并运行composer install,用于安装额外扩展、皮肤和依赖。
通过浏览器访问http://localhost: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参见mediawiki-extensions-caliper repo的CaliperActor对象。
可通过SetCaliperActorObject钩子定制Caliper actor。本容器在CustomHooks.php中通过SetCaliperActor函数使用此钩子。
默认SetCaliperActor函数使用UBC puid作为标识符,CALIPER_LDAP_ACTOR_HOMEPAGE环境变量作为基础字符串,因此actor标识符格式为CaliperLDAPActorHomepage/LDAP_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仓库也遵循相同规则。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429