使用Windows 10,Docker工具箱(非本机Docker,以便能够使用VM)。
有一个Python(2.7)脚本应该运行Docker容器。代码如下:
self.docker.containers.run('container_name',
command='bash -c "%s"' % command,
volumes={PROJECT_PATH: {'bind': '/shared', 'mode': 'rw'}},
working_dir='/shared',
remove=True,
**kwargs)
尝试运行脚本:
* Building the DummyProbe docker image
* Running the DummyProbe container
500 Server Error: Internal Server Error ("invalid volume specification: 'C:\Users\Foo\..:/shared:rw'")
搜索网络后,invalid volume specification
似乎是Windows和Linux处理目录结构的方式引起的。 Linux使用斜杠/
,而Windows使用反斜杠\
。类似问题:
但是在我的情况下,COMPOSE_CONVERT_WINDOWS_PATHS
已设置(设置为true
,也尝试设置为1
):
$ docker-machine env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://111.111.11.111:1111"
export DOCKER_CERT_PATH="C:\Users\Foo\.docker\machine\machines\default"
export DOCKER_MACHINE_NAME="default"
export COMPOSE_CONVERT_WINDOWS_PATHS="true"
# Run this command to configure your shell:
# eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env)
其他问题中的任何建议都无效。
试图用\
替换/
并在脚本中使用它:
500 Server Error: Internal Server Error ("invalid volume specification: 'C:/Users/***/..:/shared:rw'")
所以看来这不是问题
答案 0 :(得分:0)
我能够通过将所有type User struct {
Id int `form:"-"`
Name interface{} `form:"username"`
Age int `form:"age,text,age:"`
Sex string
Intro string `form:",textarea"`
}
<form action="" method="post">
{{.Form | renderform}}
</form>
替换为\\
并将/
替换为C:
来完成这项工作。
断开路径:
/c
变成
C:\\Path\\to\\file
https://docs.python.org/2/library/os.html
似乎负责返回系统路径的/c/path/to/file
模块没有将Windows转换为Unix路径的内置函数。而且Docker Toolbox也无法处理这种对话(即使可以的话)。
也许还有其他一些优雅的方法可以完成这项工作。但是现在只使用这个。