首页 > 解决方案 > 带有 VS Code 和 C++ 的 Docker

问题描述

我正在学习 Docker,但我遇到了我无法弄清楚的 VS Code 问题。我想在 tasks.json 中有一个任务来构建和运行我的简单 main.cpp 文件。

{
        "label": "run-main",
        "type": "docker-run",
        "dockerRun":
        {
            "remove": true,
            "image": "test/learning:latest",
            "containerName": "myContainer",
            "volumes":
            [
                {
                    "localPath": "${workspaceFolder}/src",
                    "containerPath": "/home/myUser/src",
                    "permissions": "rw"
                }
            ],
            "command": "g++ main.cpp -o main.exe && ./main.exe"
        }

当我运行任务时,它会编译然后给我以下错误'.' is not recognized as an internal or external command, operable program or batch file.。如果我设置"remove":false,注释掉该command行,将一个 shell 附加到正在运行的容器,然后进入g++ main.cpp -o main.exe && ./main.exe那个附加的 shell,它会编译并运行。有谁知道我做错了什么?

更新

我尝试了单独的build和依赖于的run任务并且没有问题,这表明 docker run 不喜欢复合命令。我发现这篇文章说您需要多个命令,所以我将 tasks.json 文件中的行更改为runbuild/bin/bash -c "<command 1> && <command 2> && ..."

"command": "/bin/bash -c \"g++ main.cpp -o main.exe && ./main.exe\""

它奏效了!

标签: c++dockervisual-studio-codevscode-tasks

解决方案


推荐阅读