我在gcc
容器中设置了泊坞窗卷。我需要编译代码并通过文本文件给它一些stdin
。我可以使用以下命令执行此操作。
docker run \
-v /home/usr/workspace/proj/WebContent/files:/mycode \
gcc:4.9 \
sh -c 'cd mycode; gcc -o myapp ./mycode.c; ./myapp < ./test.txt'
现在我的问题是,我需要为每个用户使用他们的用户名创建一个单独的文件夹,但text.txt保留在与上面相同的文件夹中。我如何给他们自己的路径。因为现在我得到一个错误,找不到test.txt,当然它不会。我尝试为test.txt制作一个单独的卷,但我想在一个容器中制作两个卷是不可能的,或者我做错了。
我尝试了什么(请不要判断,我只是在学习:P)
docker run \
-v /home/usr/workspace/proj/WebContent/file/username:/mycode \
-v /home/usr/workspace/proj/WebContent/file/:/tst \
gcc:4.9 \
sh -c 'cd mycode; gcc -o myapp ./mycode.c; cd tst; ./myapp < ./test.txt'
答案 0 :(得分:2)
仔细查看此命令:
sh -c 'cd mycode; gcc -o myapp ./mycode.c; cd tst; ./myapp < ./test.txt'
因为您在同一个shell中首先cd mycode
然后cd tst
,所以您正在尝试cd mycode/tst
,而您的坐标位于/tst
。
同样,myapp
位于/mycode
,而不是tst
,因此您无法在./myapp
目录中运行tst
并期望它工作。
相反:
sh -xc 'cd /mycode && gcc -o myapp ./mycode.c && cd /tst && /mycode/myapp < ./test.txt'