c++ - 带有 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 文件中的行更改为run
build
/bin/bash -c "<command 1> && <command 2> && ..."
"command": "/bin/bash -c \"g++ main.cpp -o main.exe && ./main.exe\""
它奏效了!
解决方案
推荐阅读
- c# - 将各种类型的日期时间转换为dd/mm/yyyy
- android - 我正在寻找一种在接到电话后立即向电话收件人播放音频消息的方法
- c++ - 如何在 64 位 vb.net windows 应用程序中引用 32 位 dll
- core-data - 如何使用 CloudKit 播种数据?
- ldap - 如何在linux中更改打开的ldap默认端口
- migration - 在 authors.txt 中找不到 GIT SVN 作者姓名
- json - 如何从 Dart http 调用中返回 json / 如何完全使用流?
- python - 在python中对具有列表的字典进行排序
- laravel - Laravel 管理路线不是由 laravel 6 处理的
- python - 检查 CSV 在 Python 中是否存在类似的值