在我的Dockerfile中:
ENV PROJECTNAME mytestwebsite CMD ["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。由于不涉及任何外壳,这意味着:
>
<
|
command1; command2
如果要CMD扩展变量,则需要安排一个shell。您可以这样做:
CMD
CMD ["sh", "-c", "django-admin startproject $PROJECTNAME"]
或者,您可以使用简单的字符串而不是执行列表,这将使您得到的结果与前面的示例大致相同:
CMD django-admin startproject $PROJECTNAME