如何在Dockerfile RUN中使用环境变量



我已经阅读了一些关于这方面的教程,看起来这段代码应该可以工作。我想在我的Dockerfile中使用RUN将环境变量写入配置文件。Dockerfile的格式如下:

FROM php:7.4-apache
RUN echo "I am ${USERNAME}" > /home/dockerfile.log

我开始用这个docker- composition .yml

version: "3"
services:
web:
build:
context: .
environment:
- USERNAME=larry

docker-compose up -d开始后,日志文件只显示I Am,因此环境变量为空。这是怎么了?如果我运行docker-compose config,我可以看到变量正确显示在那里。

Run命令在构建时执行(即在构建映像时),而docker-compose中的环境变量在运行时被添加到容器中。因此,在执行Run命令时,还没有填充环境变量。如果您想在构建时传递参数,我建议使用构建参数。在撰写文件中使用arg而不是environment

最新更新