我有一个在docker中运行的节点js应用程序。
在Dockerfile中,我创建应用程序并将我的本地代码移入其中。
# Dockerfile
FROM node:8.6.0
WORKDIR /app
# Copying app
COPY . /app
# Executing test script
RUN scripts/pre-build.sh
我的目录结构是。
- 脚本
- node_modules
- SRC
- 执行
- independent_module
- shared_module_for_some_task
我在src中有一个独立的模块文件夹,它通过node_modules
链接到npm link
文件夹。当我为包运行npm link
时,为包创建了本地node_modules
(shared_module_for_some_task)。
在运行映像时,我将src中的本地更改挂载到容器内的src。这将覆盖为包本地创建的node_modules
文件夹,因为本地没有node_modules(它是在执行npm link
时在docker build上创建的)。
我尝试在此shared_module_for_some_task
下创建一个空的node_modules文件夹,但它不起作用。
文件夹被覆盖或更改为空白,因为它在本地。 当我在没有安装目录的情况下运行图像时,这很有效。
有没有办法实现这一目标。请建议。
在.dockerignore中添加它也不起作用
我不想使用带有卷的docker-compose.yml文件来隐藏node_modules的挂载。