我是 Docker 的新手。我有一个项目设置如下:
app/
dist/
node_modules/
package.json
Dockerfile
docker-compose.yml
.dockerignore
FROM node:10.16.2
WORKDIR /app
RUN sed -i '/jessie-updates/d' /etc/apt/sources.list
RUN apt-get update
RUN rm -rf /var/lib/apt/lists/*
RUN npm install --quiet
RUN npm install -g gulp
EXPOSE 3000
version: '2'
services:
web:
build: .
command: gulp
ports:
- "3000:3000"
volumes:
- .:/app
package:
build: .
command: ./package.sh
volumes:
- ./package:/app/package
# add git-ignore syntax here of things you don't want copied into docker image
.git
*Dockerfile*
*docker-compose*
package-lock.json
node_modules/
docker-compose build --no-cache web && docker-compose up web
,其实是不是 创建自己的 node_modules
但是使用本地系统的。我想要 docker 自己的 node_modules
当我运行 docker 时。请帮忙。最佳答案
您正在安装一个主机卷,即您的项目文件夹到您的容器中
volumes:
- .:/app
WORKDIR /app
的事情时,您正在将 Dockerfile 所在的工作目录映射到容器中的/app,因此您实际上位于主机上的项目文件夹中,而不是副本中。您再次在主机上运行 npm install 。如果您修改该文件夹(应用程序)内的任何内容,更改将直接写入主机。https://stackoverflow.com/questions/57512490/