如何定制docker gcc命令并添加自己的path而不是/ usr / src

我想用docker的gcc容器编译一个名为test.c的C文件。

我正在使用下面的命令,我已经把test.c放在了我的home

 sudo docker run -v /home/moomal/workspace/FypProject/WebContent/file/:/myapp.c:ro gcc:4.9 sh -c "gcc -o myapp /home/moomal/workspace/FypProject/WebContent/file/myapp.c; ./myapp" 

它工作的很酷,但是,我想从home的文件夹更改为我的Eclipse Web项目文件夹中的文件夹。 我有一个网页上的编辑器,然后编译它创build一个文件夹内的test.c文件。 我想要访问该文件。

我试图添加/home/moomal/workspace/FypProject/WebContent/file的path,但我得到错误

  gcc: error: /home/moomal/workspace/FypProject/WebContent/file/myapp.c: No such file or directory gcc: fatal error: no input files compilation terminated. sh: 1: ./myapp: not found 

你似乎对这里的几件事感到困惑。

-v HOST_PATH:CON_PATH参数可用于在容器中装载文件,正如您似乎正在尝试的那样。 HOST_PATH可以是文件或目录。 CON_PATH决定文件或目录在容器中的位置。 在你的情况下,我想你想要:

 -v /home/moomal/workspace/FypProject/WebContent/file/myapp.c:/myapp.c 

不只是...file/:/myapp.c 。 我不确定你的版本要做什么(一个目录如何映射到一个文件?)。

另外,在shell命令中你给出了主机上的path,但是这是在容器中处理的,你需要在容器中的path,即:

 gcc -o myapp /myapp.c 

把它放在一起,我希望看到像这样的东西:

 sudo docker run -v /home/moomal/workspace/FypProject/WebContent/file/myapp.c:/myapp.c:ro gcc:4.9 sh -c "gcc -o myapp /myapp.c; ./myapp"