当前位置: 首页 > 知识库问答 >
问题:

DockerFile上的WORKDIR有什么意义?

柴坚诚
2023-03-14

我在学码头工人。我多次看到dockerfileworkdir命令:

FROM node:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm install
COPY . /usr/src/app
EXPOSE 3000
CMD [ “npm”, “start” ] 

难道我就不能省略workdircopy而只在项目的根目录中放置我的dockerfile吗?使用这种方法的缺点是什么?

共有1个答案

韦晟睿
2023-03-14

根据文件

WORKDIR指令为dockerfile中跟随它的任何RUN、CMD、ENTRYPOINT、COPY和ADD指令设置工作目录。如果WORKDIR不存在,即使它没有在任何后续Dockerfile指令中使用,也会创建它。

此外,在Docker最佳实践中,它建议您使用它:

FROM node:latest
WORKDIR /usr/src/app
COPY package.json .
RUN npm install
COPY . ./
EXPOSE 3000
CMD [ “npm”, “start” ] 
 类似资料:
  • 问题内容: 这可能是一个愚蠢的问题,但这不是在我的脑海中点击。 在Django中,惯例是将特定于应用程序的所有静态文件(即css,js)放入名为static的文件夹中。所以结构看起来像这样: 在我有: 因此,当我运行命令时: 它会在根目录下创建一个文件夹(与相同的目录myapp/) 这有什么意义呢?它不只是创建我所有静态文件的副本吗? 问题答案: 将来自多个应用程序的静态文件收集到一个路径中 那么

  • 问题内容: 如果我已经在大多数主流浏览器中测试过我的页面,为什么我需要维护一个经过验证的代码?如果WebKit浏览器和Firefox支持框阴影和拐角半径,我想使用它们。我不在乎它们是否不会出现在Internet Explorer中。但是我通过不包含图像来降低HTTP请求的数量。 有效代码是否有优势?在搜索引擎优化还是其他方式? 问题答案: Google更喜欢它,因此对SEO很有好处。 它使您的网页

  • 我一直在阅读和学习Docker,并试图正确选择要使用的Django设置。到目前为止,存在以下两种情况之一: Docker撰写或Dockerfile 我知道Docker Compose中使用Dockerfiles,但我不确定将所有内容放在一个大Dockerfiles中,并使用多个来自不同图像的命令是否是一种好的做法? 我想使用几个不同的图像,包括: 请就使用Docker设置此类环境的最佳实践提供建议

  • 问题内容: 在Dockerfiles中,有两个与我相似的命令:和。但是我想它们之间有一个(细微的?)差异- 否则对于同一件事有两个命令是没有任何意义的。 文档说明 CMD的主要目的是为执行中的容器提供默认值。 和为: ENTRYPOINT帮助您配置可以作为可执行文件运行的容器。 那么,这两个命令有什么区别? 问题答案: Docker有一个默认入口点,但没有默认命令。 当您像这样运行docker时:

  • 在Dockerfiles中有两个与我类似的命令:和。但我猜有一个(微妙?)它们之间的差异--否则,对同一件事使用两个命令是没有任何意义的。 文档中的状态为 CMD的主要目的是为正在执行的容器提供默认值。 入口点帮助您配置可以作为可执行文件运行的容器。 那么,这两个命令有什么区别呢?

  • 在Apache Tomcat中,参数URIEncoding告诉Tomcat如何解释传入的URI: 编码 这指定在%xx解码URL后用于解码URI字节的字符编码。如果没有规定,将使用ISO-8859-1。 Apache Tomcat 7-HTTP连接器 然而,正如在URL编码Unicode字符的正确方法是什么中所解释的那样,URI中的非ASCII字符始终按照当前标准(RFC 3986和3987)以U