在我的 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扩展变量,则需要安排一个外壳。你可以这样做:
CMD
CMD ["sh", "-c", "django-admin startproject $PROJECTNAME"]
或者你可以使用一个简单的字符串而不是一个执行列表,它得到的结果与前面的例子大致相同:
CMD django-admin startproject $PROJECTNAME