带有npm install的Docker添加了不需要的符号链接

时间:2018-06-26 15:43:37

标签: node.js docker npm

我正在尝试为需要本地模块的项目构建一个nodejs容器。在我的package.json上,我有一个指向上方文件夹的相对链接,因为这里有本地模块所在的位置。除了在容器内部,将本地模块作为符号链接添加到主机(Windows)之外,其他所有东西似乎都正常运行。

仅当我使用dockerfile进行构建时,才会发生此行为,如果我在容器内手动进行npm安装,则模块将按预期复制到node_module中。

package.json条目:

"app-lib": "file:../app_lib"

docker文件:

FROM node:8.9-alpine
ENV NODE_ENV production
WORKDIR /usr/src/app
COPY ["./Provider/package.json", "./Provider/package-lock.json*", "./Provider/npm-shrinkwrap.json*", "./"]
COPY ["./app_lib/package.json", "./app_lib/package-lock.json*", "./app_lib/npm-shrinkwrap.json*", "../app_lib/"]
RUN cd ../app_lib && npm install
COPY ./app_lib .
RUN cd ../app && npm install
COPY ./Provider .
EXPOSE 3001

恼人的符号链接:

app-lib -> E:\work\app_server\app_lib\

任何人都对如何使其在构建中正常工作或为什么可能是其潜在原因有任何建议?

1 个答案:

答案 0 :(得分:2)

请确保您在node_modules中有.dockerignore,否则COPY ./app_lib .将覆盖相同的内容,并且您将获得所看到的行为