如何在 Visual Studio Code Remote 中指定 dockerfile 阶段?
How do I specify the dockerfile stage in Visual Studio Code Remote?
我有一个多阶段的 Dockerfile。我想配置 VS Code Remote 来构建 Dockerfile 的开发阶段而不是 Dockerfile 中的最后阶段。
我很确定这个配置会放在 .devcontainer.json 文件中。我已经通读了 .devcontainer.json 参考资料:https://code.visualstudio.com/docs/remote/containers#_devcontainerjson-reference 并尝试了 runArgs
,但这些是 运行 时间参数,而不是构建参数。
我试过这个:
{
"dockerFile": "Dockerfile",
"extensions": ["ms-python.python"],
"runArgs": [
"--target",
"dev"
]
}
和:
{
"dockerFile": "Dockerfile",
"extensions": ["ms-python.python"],
"buildArgs": [
"--target",
"dev"
]
}
当我使用 runArgs
时,我得到了 Failed: Starting the development container
,因为 target
不是 docker run
选项。当我尝试 buildArgs
时,参数显然被忽略了,这是有道理的,因为它没有在文档中列出。
我找到了解决方法。
我可以自己手动构建 Dockerfile:
docker build --target dev -t vizd .
然后在.devcontainer.json
中使用image
参数:
{
"image": "vizd",
"extensions": ["ms-python.python"]
}
不完美,但可行。
您可以使用 Dev Container: Existing Docker Compose 模式。
docker-撰写服务可以指定Docker文件阶段。
运行Args 指定要与“docker 运行”命令一起使用的参数。
在这种情况下,我们需要将参数传递给“docker build”命令。
要指定构建参数,您需要使用“build”属性。在您的示例中,您需要 devcontainer.json 文件包含:
"build": {
"target": "dev"
},
我有一个多阶段的 Dockerfile。我想配置 VS Code Remote 来构建 Dockerfile 的开发阶段而不是 Dockerfile 中的最后阶段。
我很确定这个配置会放在 .devcontainer.json 文件中。我已经通读了 .devcontainer.json 参考资料:https://code.visualstudio.com/docs/remote/containers#_devcontainerjson-reference 并尝试了 runArgs
,但这些是 运行 时间参数,而不是构建参数。
我试过这个:
{
"dockerFile": "Dockerfile",
"extensions": ["ms-python.python"],
"runArgs": [
"--target",
"dev"
]
}
和:
{
"dockerFile": "Dockerfile",
"extensions": ["ms-python.python"],
"buildArgs": [
"--target",
"dev"
]
}
当我使用 runArgs
时,我得到了 Failed: Starting the development container
,因为 target
不是 docker run
选项。当我尝试 buildArgs
时,参数显然被忽略了,这是有道理的,因为它没有在文档中列出。
我找到了解决方法。
我可以自己手动构建 Dockerfile:
docker build --target dev -t vizd .
然后在.devcontainer.json
中使用image
参数:
{
"image": "vizd",
"extensions": ["ms-python.python"]
}
不完美,但可行。
您可以使用 Dev Container: Existing Docker Compose 模式。 docker-撰写服务可以指定Docker文件阶段。
运行Args 指定要与“docker 运行”命令一起使用的参数。 在这种情况下,我们需要将参数传递给“docker build”命令。
要指定构建参数,您需要使用“build”属性。在您的示例中,您需要 devcontainer.json 文件包含:
"build": {
"target": "dev"
},