查看official Ruby image Docker page-该示例显示设置WORKDIR /usr/src/app
。
有人知道为什么要使用这个特定路径吗?
就是说可以让我的应用程序处于根目录还是换个说法就可以了?根据文档,我知道它的建议,但是我在创建目录时遇到了一些问题。
只想确保删除它没有问题。我以其他方式测试了我的图片,它可以按预期工作。
谢谢。
答案 0 :(得分:2)
/usr/src/app
没什么特别的。它在标准目录树中,但是没有任何预安装,这对于解释器或容器也不是什么不可思议的。如果我看到WORKDIR /app
或另一个目录,我不会眨两次。
可以将我的应用程序放在根目录下
有点奇怪。有一些目录具有特殊含义,尽管IME多数Ruby应用程序都没有名为proc
或sys
或lost+found
的子目录,否则它们会发生冲突。 lib
目录 很常见,并且那里至少有不寻常的重叠。
设置 some WORKDIR
在应用程序Dockerfile中基本上是通用的,没有特别的理由不使用它。问题链接中“如何使用此映像”下的示例Dockerfile实际上非常典型。
答案 1 :(得分:1)
Linux文档项目对/usr/src
进行了说明/ usr是可共享的只读数据。
大型软件包不得使用/ usr下的直接子目录 等级
“ linux”子目录包含Linux内核源代码,头文件和文档。
我不确定他们为什么使用该目录,它可能不会有害,但是它不一定是Ruby / Rails应用程序的最佳选择。同时,您放置的位置完全不重要,但是您可能确实要遵守一些规则:
~
(主目录)文件夹。如果您具有默认情况下安装到home的库,则可能会导致问题,然后尝试安装该目录并覆盖所有内容。另外,您可能最终会在其中找到不需要的工件(.bash_profile,.config /等)/
(root),因此您不必承担覆盖系统目录的风险创建一个/app
目录是我所见过的最常见的模式。您会在某些CI / CD工具中看到它们将数据放入/app
文件夹中,因此这就是我尝试用于Dockerfiles的方式