docker-compose 文档的注释中解释了您的问题:
build-args 的范围
在你的 Dockerfile 中,如果你指定ARG
之前FROM
操作说明,ARG
下的构建说明中不可用FROM
。如果您需要一个参数在两个地方都可用,也可以在FROM
操作说明。请参阅了解 ARGS 和 FROM 如何 https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact文档中的交互部分了解使用详细信息。
Source: https://docs.docker.com/compose/compose-file/#args https://docs.docker.com/compose/compose-file/#args, emphasis, mine
所以修复就像移动ARG XDEBUGVERSION
你的Dockerfile以下FROM
.
ARG PHPVERSION
FROM php:${PHPVERSION}-fpm
ARG XDEBUGVERSION
RUN apt-get update && apt-get install -y \
&& pecl install xdebug-${XDEBUGVERSION} \
&& docker-php-ext-enable xdebug
连同你的docker-compose.yml并且容器正在按预期启动。
然后,为了让您相信 PHP 映像是正确的,您应该查看执行步骤(这是我的试用版):
Step 2/4 : FROM php:${PHPVERSION}-fpm
---> 8407023453aa
然后运行命令:docker images
:
REPOSITORY TAG IMAGE ID CREATED SIZE
php 7.4-fpm 8407023453aa 6 days ago 405MB
如果那里的图像 ID 确实匹配,那么您就确定您拥有正确的图像。