vscode -- 如何在任务中 运行 `docker`? -- Docker-Build-Task 不工作
vscode -- How to run `docker` in a task ? -- Docker-Build-Task does not work
现状与问题
我正在 运行ning macOS Mojave 10.14.5,升级 bash 就像描述的那样 here and have a TeXlive docker container (basically that one),我想调用它来排版 LaTeX 文件。这确实工作得很好,并且在 tasks.json
之后的执行也完美无缺,直到最近的一些更新(我无法确定,因为我不是每天都使用它)。
tasks.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "runit",
"group": {
"kind": "build",
"isDefault": true
},
"command": "docker",
"args": [
"run",
"-v",
"${fileDirname}:/doc/",
"-t",
"-i",
"mytexlive",
"pdflatex",
"${fileBasename}"
],
"problemMatcher": []
},
{
"type": "shell",
"label": "test",
"command": "echo",
"args": [
"run",
"-v",
"${fileDirname}:/doc/",
"-t",
"-i",
"mytexlive",
"pdflatex",
"${fileBasename}"
],
}
]
}
尝试 运行 docker 会产生 "command not found" :
> Executing task: docker run -v /path/to/file:/doc/ -t -i mytexlive pdflatex file_name.tex <
/usr/local/bin/bash: docker: command not found
The terminal process command '/usr/local/bin/bash -c 'docker run -v /path/to/file:/doc/ -t -i mytexlive pdflatex file_name.tex'' failed to launch (exit code: 127)
...在尝试回应时,工作正常。
> Executing task: echo run -v /path/to/file:/doc/ -t -i mytexlive pdflatex file_name.tex <
run -v /path/to/file:/doc/ -t -i mytexlive pdflatex file_name.tex
尽管如此,它曾经像上面描述的那样工作 和 完全相同的命令在终端中工作,但如果我将它作为构建任务执行,它现在会失败。因此,我的
问题
How to use docker
in a build-task ?
或修复上述设置中的问题。
补充说明
尝试以下产生相同的结果 "command not found"
{
"type": "shell", "label": "test",
"command": "which", "args": ["docker"]
}
...即使这有效:
bash$ /usr/local/bin/bash -c 'which docker'
/usr/local/bin/docker
bash$ echo $PATH
/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
编辑:另外一个注释:
我正在使用上下文条目启动 vscode 和一个自动化脚本,该脚本 运行 执行以下 bash 命令,元素 'right-clicked' 作为变量传递:
#!/bin/sh
/usr/local/bin/code -n ""
因此,由于这里没有任何进展并且我在 GitHub 上得到了帮助:我只会回答自己,这样其他领导在这里寻找解决方案的人就不会失望。
感谢joaomoreno
事实证明,通过上下文条目启动 vscode 时,环境变量存在一些问题。到目前为止,这样开始解决了这个问题:
#!/bin/sh
VSCODE_FORCE_USER_ENV=1 /usr/local/bin/code -n ""
现状与问题
我正在 运行ning macOS Mojave 10.14.5,升级 bash 就像描述的那样 here and have a TeXlive docker container (basically that one),我想调用它来排版 LaTeX 文件。这确实工作得很好,并且在 tasks.json
之后的执行也完美无缺,直到最近的一些更新(我无法确定,因为我不是每天都使用它)。
tasks.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "runit",
"group": {
"kind": "build",
"isDefault": true
},
"command": "docker",
"args": [
"run",
"-v",
"${fileDirname}:/doc/",
"-t",
"-i",
"mytexlive",
"pdflatex",
"${fileBasename}"
],
"problemMatcher": []
},
{
"type": "shell",
"label": "test",
"command": "echo",
"args": [
"run",
"-v",
"${fileDirname}:/doc/",
"-t",
"-i",
"mytexlive",
"pdflatex",
"${fileBasename}"
],
}
]
}
尝试 运行 docker 会产生 "command not found" :
> Executing task: docker run -v /path/to/file:/doc/ -t -i mytexlive pdflatex file_name.tex <
/usr/local/bin/bash: docker: command not found
The terminal process command '/usr/local/bin/bash -c 'docker run -v /path/to/file:/doc/ -t -i mytexlive pdflatex file_name.tex'' failed to launch (exit code: 127)
...在尝试回应时,工作正常。
> Executing task: echo run -v /path/to/file:/doc/ -t -i mytexlive pdflatex file_name.tex <
run -v /path/to/file:/doc/ -t -i mytexlive pdflatex file_name.tex
尽管如此,它曾经像上面描述的那样工作 和 完全相同的命令在终端中工作,但如果我将它作为构建任务执行,它现在会失败。因此,我的
问题
How to use
docker
in a build-task ?
或修复上述设置中的问题。
补充说明
尝试以下产生相同的结果 "command not found"
{
"type": "shell", "label": "test",
"command": "which", "args": ["docker"]
}
...即使这有效:
bash$ /usr/local/bin/bash -c 'which docker'
/usr/local/bin/docker
bash$ echo $PATH
/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
编辑:另外一个注释:
我正在使用上下文条目启动 vscode 和一个自动化脚本,该脚本 运行 执行以下 bash 命令,元素 'right-clicked' 作为变量传递:
#!/bin/sh
/usr/local/bin/code -n ""
因此,由于这里没有任何进展并且我在 GitHub 上得到了帮助:我只会回答自己,这样其他领导在这里寻找解决方案的人就不会失望。
感谢joaomoreno事实证明,通过上下文条目启动 vscode 时,环境变量存在一些问题。到目前为止,这样开始解决了这个问题:
#!/bin/sh
VSCODE_FORCE_USER_ENV=1 /usr/local/bin/code -n ""