node.js - Dockerizing Node.js 应用程序 - : ENV PATH/app/node_modules/. bin:$PATH 是什么

标签 node.js docker

我经历了one of very few good dockerizing Vue.js tutorials还有一件事我不明白为什么在 Dockerfile 中是强制性的:

# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json /usr/src/app/package.json #not sure though how it relates to PATH...

我只找到了一个解释 here其中说:

We expose all Node.js binaries to our PATH environment variable and copy our projects package.json to the app directory. Copying the JSON file rather than the whole working directory allows us to take advantage of Docker’s cache layers.



尽管如此,它并没有让我变得更聪明。谁能用简单的英语解释一下?

最佳答案

所以我认为这一行的好处是将来自 Docker 容器的 node_modules 路径添加到 PATH 的列表中s 在相关容器上。如果您使用的是 Mac(或我认为是 Linux)并运行:

$ echo $PATH  
您应该会看到用于从终端运行全局命令的路径列表,即 gulp , husky , yarn等等。
上面的命令会将 node_modules 路径添加到 docker 容器中的 PATH 列表中,以便这些命令(如果需要)可以在容器内全局运行,它们将起作用。

关于node.js - Dockerizing Node.js 应用程序 - : ENV PATH/app/node_modules/. bin:$PATH 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59275686/

相关文章:

node.js - 在 Node.js 中测试方法签名

docker - Docker和Chef工会,区别

docker - 在 docker alpine linux 基础镜像上设置 glibc 是否有最佳实践?

docker - 多个Dockerfile

javascript - 如何使用nodejs从javascript方法中调用递归方法?

linux - Node.JS 中的域名

git - GitHub Build容器镜像出现错误

docker - Jenkins-Helm-尝试运行测试时未找到Docker

javascript - 我应该在 npm 上发布我的模块的源代码吗?

node.js - 用 Jest 模拟间接依赖