【发布时间】:2018-06-27 01:53:10
【问题描述】:
我正在尝试为我的项目构建一个需要本地模块的 nodejs 容器。在我的 package.json 中,我得到了一个指向上面文件夹的相对链接,因为本地模块位于其中。一切似乎都正常工作,除了在容器内,本地模块作为符号链接添加到主机(Windows)。
此行为仅在我使用 dockerfile 构建时发生,如果我在容器内手动执行 npm install,则模块会按预期复制到 node_module 中。
package.json 条目:
"app-lib": "file:../app_lib"
码头文件:
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\
有人对如何使其在构建中正常工作或为什么可能是根本原因有任何建议?
【问题讨论】:
-
哦,在我忘记之前,已经尝试过 --no-bin-link 并且它似乎不起作用
-
.dockerignore中有node_modules吗?否则COPY ./app_lib .将覆盖相同 -
就是这样..我在 .dockerignore 中有 node_modules 但一直没有意识到它缺少“**/”