如何在Dockerfile CMD中使用变量?
在我的Dockerfile中:
ENV PROJECTNAME mytestwebsiteCMD ["django-admin", "startproject", "$PROJECTNAME"]
错误:
CommandError: '$PROJECTNAME' is not a valid project name
最快的解决方法是什么?Docker是否有计划“修复”或在更高版本的Docker中引入此功能?
注意:如果我从Docker文件中删除CMD行,然后运行Docker容器,则能够从容器内部手动运行Django-admin startproject $
PROJECTNAME,它将创建项目…
回答:
当您使用执行列表时,如…
CMD ["django-admin", "startproject", "$PROJECTNAME"]
…然后Docker将 直接 执行给定的命令,而无需使用shell。由于不涉及任何外壳,这意味着:
- 无变量扩展
- 没有通配符扩展
- 没有I / O重定向功能
>
,<
,|
等 - 没有多个命令通过
command1; command2
- 依此类推。
如果要CMD
扩展变量,则需要安排一个shell。您可以这样做:
CMD ["sh", "-c", "django-admin startproject $PROJECTNAME"]
或者,您可以使用简单的字符串而不是执行列表,这将使您得到的结果与前面的示例大致相同:
CMD django-admin startproject $PROJECTNAME
以上是 如何在Dockerfile CMD中使用变量? 的全部内容, 来源链接: utcz.com/qa/434476.html