gcc - 在docker gcc和java中制作2个卷

标签 gcc docker

我在gcc容器中设置了一个docker卷。我需要编译代码,并通过文本文件为其提供一些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'

最佳答案

请仔细查看以下命令:

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'

关于gcc - 在docker gcc和java中制作2个卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29204063/

相关文章:

c++ - gcc -finline-functions 行为?

docker - 通过Docker运行Ansible时最优雅的方式来处理ANSIBLE_VAULT_PASSWORD_FILE?

c# - 如何在 .NET Core 应用程序 docker 镜像中包含依赖项?

ruby - docker-compose:无法连接到 memcached 容器

docker - spring boot mvc docker Whitelabel错误

linux - 降级 gcc 版本后,Ada 编译器崩溃并显示 "Ada compiler not installed on this system."

c - Fortran/Mac OS X 中 ISO_C_binding "c_intptr_t"返回的值不正确

c - string3.h中__warn_memset_zero_len的定义在哪里

gcc ARM编译器在.text节中存储字符串

docker apache 和 nginx 端口冲突