快速参考
-
获取帮助的途径:
Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
支持的标签和相应的 Dockerfile 链接
快速参考(续)
-
问题提交至何处:
https://phabricator.wikimedia.org/project/view/3094/ -
支持的架构:(更多信息)
amd64,arm32v5,arm32v6,arm32v7,arm64v8,i386,ppc64le -
已发布的映像工件详细信息:
repo-info repo 的repos/mediawiki/目录(历史记录)
(图像元数据、传输大小等) -
图像更新:
官方镜像仓库的library/mediawiki标签
官方镜像仓库的library/mediawiki文件(历史记录) -
来源:此描述的来源:
docs 存储库的mediawiki/目录(历史记录)
什么是 MediaWiki?
MediaWiki 是一款免费的开源维基软件。它最初由马格努斯·曼斯克(Magnus Manske)开发,并由李·丹尼尔·克罗克(Lee Daniel Crocker)改进,在包括维基百科、维基词典和维基共享资源在内的许多网站上运行。它是用 PHP 编程语言编写的,并将内容存储在数据库中。与基于类似许可和架构的 WordPress 一样,它已成为其类别中的主导软件。
如何使用此图像
启动 mediawiki 实例的基本模式是:
$ docker run --name some-mediawiki -d mediawiki
如果您希望能够从主机访问实例而无需容器的 IP,则可以使用标准端口映射:
$ docker run --name some-mediawiki -p 8080:80 -d mediawiki
然后,在浏览器中通过 http://localhost:8080 或 http://host-ip:8080 访问它。
此映像支持多种数据库类型,最容易通过标准容器链接使用。在默认配置中,可以使用 SQLite 避免第二个容器并写入平面文件。以下是针对不同(更适合生产)数据库类型的更详细说明。
首次访问此映像提供的 Web 服务器时,它将经历一个简短的设置过程。下面提供的详细信息专门针对该配置过程的“设置数据库”步骤。
MySQL
$ docker run --name some-mediawiki --link some-mysql:mysql -d mediawiki
- 数据库类型:
MySQL, MariaDB, or equivalent - 数据库名称/用户名/密码:
<details for accessing your MySQL instance>(MYSQL_USER,MYSQL_PASSWORD,MYSQL_DATABASE;请参阅mariadb描述中的环境变量) - 高级选项;数据库主机:
some-mysql(用于使用/etc/hosts条目添加的--link访问链接容器的 MySQL 实例)
卷
默认情况下,此映像不包含任何卷。
路径 /var/www/html/images 和 /var/www/html/LocalSettings.php 通常应该是卷,但在此映像中没有明确的 VOLUME 声明,因为卷无法删除。
$ docker run --rm mediawiki tar -cC /var/www/html/sites . | tar -xC /path/on/host/sites
...通过 docker-compose 或 docker stack deploy
示例 docker-compose.yml 用于 mediawiki :
# MediaWiki with MariaDB
#
# Access via "http://localhost:8080"
# (or "http://$(docker-machine ip):8080" if using docker-machine)
version: '3'
services:
mediawiki:
image: mediawiki
restart: always
ports:
- 8080:80
links:
- database
volumes:
- images:/var/www/html/images
# After initial setup, download LocalSettings.php to the same directory as
# this yaml and uncomment the following line and use compose to restart
# the mediawiki service
# - ./LocalSettings.php:/var/www/html/LocalSettings.php
# This key also defines the name of the database host used during setup instead of the default "localhost"
database:
image: mariadb
restart: always
environment:
# @see https://phabricator.wikimedia.org/source/mediawiki/browse/master/includes/DefaultSettings.php
MYSQL_DATABASE: my_wiki
MYSQL_USER: wikiuser
MYSQL_PASSWORD: example
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
volumes:
- db:/var/lib/mysql
volumes:
images:
db:
运行 docker stack deploy -c stack.yml mediawiki (或 docker-compose -f stack.yml up ),等待其完全初始化,然后访问 http://swarm-ip:8080 、 http://localhost:8080 或 http://host-ip:8080 (视情况而定)。
添加额外的库/扩展
该映像不提供任何其他 PHP 扩展或其他库,即使流行的插件需要它们。可能的插件数量是无限的,它们可能需要 PHP 支持的任何扩展。包括所有存在的 PHP 扩展将大大增加映像大小。
如果您需要其他 PHP 扩展,您需要创建自己的映像 FROM 这个。 php 映像的文档解释了如何编译其他扩展。
以下 Docker Hub 功能可以帮助您完成保持依赖镜像最新的任务:
- 自动化构建允许 Docker Hub 在每次推送更改到 Dockerfile 时自动构建它。
图像变体
mediawiki 图像有多种类型,每种都针对特定的用例进行了设计。
mediawiki:<version>
这是默认的镜像。如果您不确定自己的需求是什么,您可能想要使用这个。它被设计为既可以用作一次性容器(挂载您的源代码并启动容器以启动您的应用程序),也可以用作构建其他镜像的基础。
mediawiki:<version>-alpine
该镜像基于流行的 Alpine Linux 项目,可在 alpine 官方镜像中使用。Alpine Linux 比大多数发行版基础镜像(约 5MB)小得多,因此通常会生成更精简的镜像。
当您主要关注最终图像大小尽可能小时,此变体很有用。需要注意的主要警告是,它确实使用 musl libc 而不是 glibc 等,因此软件通常会根据其 libc 要求/假设的深度遇到问题。有关可能出现的问题以及使用基于 Alpine 的映像的一些优缺点比较的更多讨论,请参阅此 Hacker News 评论线程。
为了最小化镜像大小,在基于 Alpine 的镜像中包含额外的相关工具(如 git 或 bash )是不常见的。使用此镜像作为基础,在您自己的 Dockerfile 中添加您需要的东西(如果您不熟悉如何安装软件包,请参阅 alpine 镜像描述中的示例)。
许可证
查看此映像中包含的软件的许可证信息。
与所有 Docker 镜像一样,这些镜像可能还包含其他软件,这些软件可能受其他许可证的约束(例如来自基础发行版的 Bash 等,以及所包含的主要软件的任何直接或间接依赖项)。
一些能够自动检测到的额外许可证信息可能会在 repo-info 存储库的 mediawiki/ 目录中找到。
对于任何预构建的映像使用,映像用户有责任确保对此映像的任何使用都符合其中包含的所有软件的任何相关许可证。
