关于Docker Compose部署MediaWiki的配置完善及镜像选择的技术咨询
关于Docker Compose部署MediaWiki的配置完善及镜像选择的技术咨询
先帮你把提供的MediaWiki Docker Compose配置里的问题捋一捋,再聊聊镜像选择的事儿~
一、修正后的MediaWiki Docker Compose配置
你给的配置里有几个小问题得调整才能正常运行:
mariadb服务的缩进错误,它必须嵌套在services节点下,不然Docker Compose识别不了这个服务- 几个
---占位符要替换成你实际的内容:容器名、数据库密码都得填真实值 - 启动命令里的
---.yml要换成你的配置文件实际名称
修正后的完整配置如下:
services: wiki: image: mediawiki container_name: my_mediawiki_container # 替换成你想要的容器名称 restart: always ports: - 8080:80 volumes: - images:/var/www/html/images mariadb: image: mariadb container_name: my_mariadb_container # 替换成你想要的容器名称 restart: always environment: MYSQL_DATABASE: testdb MYSQL_USER: testc MYSQL_PASSWORD: your_secure_db_password # 替换成真实的数据库密码 MYSQL_RANDOM_ROOT_PASSWORD: 'yes' volumes: - db:/var/lib/mysql volumes: images: db:
二、关于Docker镜像的选择建议
预构建镜像(尤其是官方镜像)一般都遵循最佳实践,配置灵活性也够。举个例子:
- 你可以直接用官方Apache httpd镜像,通过
docker run -v把配置文件挂载进去;或者基于httpd镜像构建自己的镜像,用COPY把静态内容复制进去 - PostgreSQL官方镜像在凭证管理、存储配置上做了很多细节优化,连一些容易忽略的初始化步骤都处理好了
(悄悄说:我自己复习的时候也会“作弊”看资料,毕竟要记的细节太多了,全凭脑子记根本走不了这么远——原谅我英语不好,这不是我的母语😂)
当然也有特殊情况:比如你的公司有合规要求,必须用特定的Linux发行版当基础镜像,那只能自己构建镜像。但这种情况一般都是管理层或安全团队的硬性规定,不是常规操作。
通常来说,从预构建镜像(尤其是官方镜像或软件作者提供的镜像)开始,能省超多时间和麻烦;至于完全从ubuntu这类基础镜像从头构建的场景,一般只适合你自己开发的编译型语言程序。——这话是David Maze说的,我超感谢他,间接帮我学了好多东西,解决了一堆问题!
三、启动命令注意事项
启动的时候记得把命令里的---.yml换成你的配置文件实际名称,比如你的配置文件叫mediawiki.yml,那命令就是:
docker compose -f mediawiki.yml up -d
备注:内容来源于stack exchange,提问作者Mohammed Karill
相关产品推荐
相关产品推荐

