在根据https://github.com/kivy/buildozer/上的说明构建了一个buildozer Docker之后,我尝试运行它,但得到了一个错误:
kivyproject $ ls
main.py
buildozer.spec
setup.py
[...]
kivyproject $ docker run --volume "$(pwd)":/home/user/hostcwd buildozer android debug
# Ensure build layout
No buildozer.spec found in the current directory. Abandon.
另外,我发现在kivyproject
旁边创建了一个名为kivyproject;C
的空目录。
怎么一回事?
我通过Git bash shell在Windows上运行。
发布于 2020-10-18 20:23:10
我的问题是Docker传递给--volume
的字符串没有被Git bash shell自动转换成Windows路径,所以Docker期望是这样的:
--volume "c:\...\kivyproject:/home/user/hostcwd"
但得到的是:
--volume "/c/.../kivyproject:/home/user/hostcwd"
解决方案是用cygpath -w
包装pwd
kivyproject $ docker run --volume "$(cygpath -w $(pwd))":/home/user/hostcwd buildozer android debug deploy
共享缓存也是一个好主意,这样就不会每次都重新下载SDK和NDK:
kivyproject $ docker run --volume "$(cygpath -w $HOME/.buildozer)":/home/user/.buildozer --volume "$(cygpath -w $(pwd))":/home/user/hostcwd buildozer android debug deploy
为了解决这个问题,我将Dockerfile
的最后一行从ENTRYPOINT ["buildozer"]
更改为ENTRYPOINT ["bash"]
,然后我可以运行docker run --volume [...] -it bulldozer
,获取一个shell并查看它是否看到一个空目录。然后,我注意到在我的工作目录旁边创建了一个名为workingdirname;C
的目录,怀疑是cygwin路径恶作剧。
https://stackoverflow.com/questions/64413240
复制相似问题