我已经阅读了几个关于这个的教程,看起来这段代码应该可以工作。我想在我的 Dockerfile 中使用 RUN
将环境变量写入配置文件。 Dockerfile 很简单:
FROM php:7.4-apache
RUN echo "I am ${USERNAME}" > /home/dockerfile.log
我从这个 docker-compose.yml 开始
version: "3"
services:
web:
build:
context: .
environment:
- USERNAME=larry
以 docker-compose up -d
开头后,日志文件仅显示 I Am,因此环境变量为空。这里有什么问题?如果我运行 docker-compose config
,我可以看到那里正确显示的变量。
答案 0 :(得分:0)
Run 命令在构建时(即构建图像时)执行,而 docker-compose 中的环境变量在运行时添加到容器中。因此,当执行 Run 命令时,环境变量尚未填充。如果您想在构建时传递参数,我建议改用构建参数。在你的撰写文件中使用 arg 而不是 environment