2017-06-15 50 views
0

我按照说明构建了一个Donkey Car 2,我试图使用docker启动webserver。当我尝试使用docker镜像运行donkeycar服务器时,为什么会出现错误?

当我运行bash start-server.sh我得到以下错误:

start-server: Running Donkey server container... 
Using TensorFlow backend. 
Loading modules for server. 
hello 
Traceback (most recent call last): 
    File "/donkey/scripts/serve.py", line 12, in <module> 
    w = dk.remotes.DonkeyPilotApplication() 
    File "/donkey/donkey/remotes.py", line 175, in __init__ 
    self.pilots = ph.default_pilots() 
    File "/donkey/donkey/pilots.py", line 84, in default_pilots 
    pilot_list = self.pilots_from_models() 
    File "/donkey/donkey/pilots.py", line 71, in pilots_from_models 
    models_list = [f for f in os.scandir(self.models_path)] 
FileNotFoundError: [Errno 2] No such file or directory: '/root/mydonkey/models' 

我如何得到这个工作?

+1

我的猜测是,应用程序没有位于/root/....Have你访问你的搬运工容器上看到的应用程序是部署?我认为这应该在Dockerfile中定义?您是否在Dockerfile中设置了APP_ROOT? – idjaw

+0

在Windows 7上使用docker时,我也遇到了很多麻烦。脚本似乎声称在/ root下创建文件,但没有找到这样的目录。在〜中创建文件并没有什么帮助。至少在Windows中,我很难确定docker认为文件系统的根源在哪里。它似乎认为我的主目录是/ c/emacs,并把所有前面加上“〜”,包括〜/驴和〜/ mydonkey,但是如果我做了一个“ls /”它甚至不显示/ c,但看起来更像是unix。我无法成功运行“docker run python ./setup.py”。 –

回答

0

我明白了这一点。

  1. 运行bash start-server -d(带-d标志)通过终端提示符打开泊坞窗。
  2. 在码头终端内部,运行python scripts/setup.py以在~/mydonkey文件夹中创建必需的文件夹。
  3. 现在,您可以通过在码头终端内运行python scripts/serve.py来启动服务器。

当您收集了一些图片后,您会在~/mydonkey文件夹中的泊坞窗内外看到它们。

+2

你应该写一个dockerfile来替你完成所有这些。使用dockerfile,您只需使用最新的代码更改来构建映像,然后使用该docker运行该映像,并且您将用最新的代码部署一个容器。你真的不应该去你的码头容器来把你的应用程序。 – idjaw

+0

[这里](https://docs.docker.com/engine/reference/builder/)是dockerfiles的参考文件 – idjaw

+0

“docker run python ./setup.py”不适用于我,并导致“文件找不到“错误,甚至使用诸如/donkey/scripts/setup.py,〜/ donkey/scripts/setup.py等等的变体等。这是在”Docker快速入门终端“中的Windows 7上。帮帮我? –

2

A simple change到start-server.sh脚本解决了我的问题。 更改线路4:

mkdir -p ~/mydonkey

这样:

mkdir -p ~/mydonkey/models

+0

如果详细说明简单更改是什么,可能会有所帮助? – agilityvision

+0

我希望现在更清楚。 –

相关问题