我需要用生产或测试环境多行数据填充.env
,我尝试将其填充到Dockerfile中,如下所示
CMD echo -e ${ENV_DATABASE_URL} > /var/www/.env
CMD echo -e ${ENV_LOGIN_USER_ID} >> /var/www/.env
字符串
命令cat .env
打印输出的将是最后一行${ENV_LOGIN_USER_ID}
数据。${ENV_DATABASE_URL}
数据将丢失
为什么>>
append到.env文件在Dockerfile中不起作用?
3条答案
按热度按时间lymgl2op1#
CMD
指令在Docker镜像中创建一个新层,并在单独的shell中运行。因此,当您像这样使用多个CMD
指令时,它们不会对同一个文件进行操作。有一种更适合您所要实现的方法,即将
echo
命令组合到一条RUN
指令中并使用shell命令。字符串
或者你可以使用
printf
命令,它允许你轻松地用换行符格式化字符串:型
k4aesqcs2#
添加到@humza的答案。
我使用这种格式,因为它更容易阅读和扩展:
字符串
aiqt4smr3#
OP的问题最初包含这个自我回答:
我解决这个问题,也许是更优雅的解决方案?
字符串