首页 > 解决方案 > 多阶段构建中的 Docker-Compose Args(变量扩展)

问题描述

我正在尝试ARG在多阶段构建上下文中使用 docker-compose 。我的 dockerfile 看起来像这样:

ARG PHP_VERSION

FROM php:${PHP_VERSION}

ARG COMPOSER_VERSION

COPY --from=composer:${COMPOSER_VERSION} /usr/bin/composer /usr/bin/composer

这个PHP_VERSION论点工作得很好。但是,COMPOSER_VERSION第四行中的 导致以下错误:

ERROR: Service 'app' failed to build: invalid from flag value composer:${COMPOSER_VERSION}: invalid reference format.

任何帮助将不胜感激。

标签: dockerdocker-composedockerfile

解决方案


不支持变量扩展COPY --from。有关详细信息,请参阅此问题。您可以通过定义一个后期复制的阶段来修改您的 Dockerfile 以实现这一点:

ARG PHP_VERSION
ARG COMPOSER_VERSION

FROM composer:${COMPOSER_VERSION} as composer
FROM php:${PHP_VERSION}

COPY --from=composer /usr/bin/composer /usr/bin/composer

推荐阅读