我已经阅读了一些关于这方面的教程,看起来这段代码应该可以工作。我想在我的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