You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无image属性的LAMP环境Docker Compose如何确定镜像?

为什么这个LAMP的Docker Compose配置没指定image也能运行?

这个配置里的webserver(Apache+PHP)和database(MySQL/MariaDB)服务没有用image属性,是因为它们用了**build指令**——Docker会根据指定目录里的Dockerfile自行构建镜像,而不是直接拉取现成的公共镜像。

具体来说:

  • webserver的build.context指向./bin/${PHPVERSION},其中${PHPVERSION}是环境变量(比如php7.4、php8.2),对应的目录里肯定有一个Dockerfile,这个文件会基于官方的PHP+Apache镜像(比如php:8.2-apache)做自定义配置,比如安装扩展、修改Apache设置等。
  • database的build.context指向./bin/${DATABASE},${DATABASE}也是环境变量(大概率是mysql或mariadb),对应的目录里的Dockerfile会以官方MySQL/MariaDB镜像为基础,做初始化脚本、配置文件这类定制。

当你执行docker-compose up时,Docker会自动去这些目录找Dockerfile,按照文件里的步骤构建出专属镜像,然后用这个构建好的镜像启动容器。

对比一下配置里的phpmyadmin和redis服务,它们用的是image指令,直接拉取官方现成的镜像来启动容器,和build的逻辑完全不同。

内容的提问来源于stack exchange,提问作者jon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 14:15:35