【发布时间】:2017-09-28 16:07:51
【问题描述】:
我已将 Docker Toolbox 下载到 Windows 7 机器上,但发现除非您在使用命令提示符时运行特定的“FOR”命令,否则您将无法运行 Docker。
按照我知道要运行的另一个 Stack Overflow 问题的说明:
docker-machine env default
返回如下内容:
SET DOCKER_TLS_VERIFY=1
SET DOCKER_HOST=tcp://ip.address
SET DOCKER_CERT_PATH=path\to\default
SET DOCKER_MACHINE_NAME=default
SET COMPOSE_CONVERT_WINDOWS_PATHS=true
REM Run this command to configure your shell:
REM @FOR /f "tokens=*" %i IN ('docker-machine env default') DO @%i
从命令行运行底部命令允许终端会话运行 docker 命令,直到它关闭,然后在重新打开时需要再次运行。
虽然这不是问题,但我正在尝试找到一种方法,可以通过 ant 设置此环境,以便运行我在现有 ant 构建中拥有的一些 docker 命令。
到目前为止我已经尝试过:
<exec command="REM @FOR /f "tokens=*" %i IN ('docker-machine env default') DO @%i
除了使用命令创建一个单独的批处理文件并通过我的构建调用它,但每次都没有错误,然后 docker 命令不起作用或类似于
无法运行程序“FOR”; CreateProcess error=2,系统找不到指定的文件。
【问题讨论】:
-
command属性已弃用,不应再使用。相反,尝试将它们拆分为单独的<arg value="" />元素;一个用于命令的每个部分,用空格分隔。也就是说,我认为你误解了最后一行。REM用于将 cmets 添加到脚本中,并且您将其作为命令的一部分。 -
好的,谢谢,我下次试试。我忘了提到,当我制作批处理文件时,它在从命令行运行但不是通过 ant 从 Eclipse 运行时运行良好。
-
即使拆分为 arg 值元素,我也会收到相同的错误“无法运行程序“FOR”;CreateProcess 错误=2,系统找不到指定的文件。”
-
我很确定您需要运行的可执行文件是
powershell。第一个 arg 值应为FOR。这是假设您实际上想要运行该代码。同样,最后两行是cmets。如果您要将整个内容复制到批处理文件中并运行它,最后两行将不会运行。 -
我已经尝试过使用 powershell 和第一个 arg 值作为 FOR 但我现在收到错误消息“在关键字 'For' 之后缺少 '(' ”。尝试添加括号作为参数,但这会带来出现关于“UnrecognizedToken”的不同错误
标签: eclipse docker ant docker-toolbox