Tag: node modules

在没有运行容器服务的情况下,在Docker容器中同步本地代码

我创build了一个具有可执行节点js应用程序的docker镜像。 我有多个独立于自己的模块。 这些模块使用npm link命令作为npm link内部的包创build,因此可以在我的节点js索引文件中使用。 目录结构是 |-node_modules |-src |-app |-index.js |-independent_modules |-some_independent_task |-some_other_independent_task 在构build映像时,我已经为根node_modules中的每个独立模块创build了npm link 。 这将在每个独立的模块内创build一个node_modules文件夹,而不存在于本地。 这只在容器内部创build。 我需要这些模块在src/app/index.js并继续我的任务。 这个docker镜像不使用服务器来保持容器运行,因此容器在过程结束时停止。 我使用build立图像 docker build -t demoapp 要在开发环境中运行index.js,我需要将本地src目录挂载到docker src目录,以反映更改而不重build映像。 安装和运行我使用命令 docker run -v $(pwd)/src:/src demoapp node src/index.js 这里的问题是,在本地,没有安装依赖关系,即没有node_modules文件夹存在。 因此,在将本地目录安装到docker中时,将其replace为空的,因此在node_modules安装的依赖关系在node_modules消失了。 我试图使用.dockerignore不装载node_modules文件夹,但它没有工作。 而且,在本地保留空的node_modules也是行不通的。 我也尝试使用docker-compose来保持卷同步,并node_modules隐藏了node_modules ,但是我认为这只在node_modules与任何服务器运行时同步,即docker容器保持运行。 这是我用的docker-compose.yml # docker-compose.yml version: "2" services: demoapp_container: build: . image: demoapp volumes: – "./src:/src" […]

在docker中只写入源文件的可写node_modules

我的webapp/Dockerfile看起来像这样: FROM project_base-container EXPOSE 9100 # … # Using copy instead of mount, since we need to write in sub-directories like node_modules etc. COPY . /usr/src/app/webapp CMD ["bash", "webapp/scripts/build_and_run.sh", "setup_deps_and_run_app"] 我想让应用程序能够读取源代码,并写入到像node_modules这样的子文件夹中,但是我不希望这些更改来自我的本地机器。 因此,我有两个select: 在node install更改–prefix='/tmp' ,并将src node install为ro 复制src,然后容器可以写任何想要的地方。 解决scheme1破坏浩劫,因为现在我必须复制/链接像package.json,index.html等所有文件的前缀位置。 解决scheme2就是我上面所做的。 当我使用COPY时,一切都很好。 但是现在的问题是,在源代码发生变化之后,我想每次更新映像中的源代码: sudo docker-compose down && sudo docker-compose up –build -d 但是COPY命令是由dockercaching的,即使在文件改变之后也不会被更新。 TL; DR:我有一个src文件夹'webapp',我想从主机挂载为readonly,但我的应用程序想写入子文件夹'webapp / […]