Node.js 与Docker一起使用语义

Node.js 与Docker一起使用语义,node.js,express,docker,dockerfile,semantic-ui,Node.js,Express,Docker,Dockerfile,Semantic Ui,我设置了一个运行express应用程序的Docker容器。以下是dockerfile: 来自节点:最新 # Create app directory RUN mkdir -p /usr/src/app WORKDIR /usr/src/app # Install app dependencies COPY package.json /usr/src/app/ RUN npm install RUN npm install -g nodemon RUN npm install --global

我设置了一个运行express应用程序的Docker容器。以下是dockerfile:

来自节点:最新

# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

# Install app dependencies
COPY package.json /usr/src/app/
RUN npm install
RUN npm install -g nodemon
RUN npm install --global gulp
RUN npm i gulp

# Bundle app source
COPY . /usr/src/app

EXPOSE 3000
CMD [ "nodemon", "-L", "./bin/www" ]
如您所见,它使用nodejs映像并在我的容器中创建一个app文件夹,它本身包含我的应用程序。docker容器在启动时运行npm install,并在容器上安装我的模块,这要感谢我的本地文件夹中没有此node_modules文件夹,我想集成使用gulp的SemanticUI。我在我的容器上安装了gulp,但是由semantic创建的文件只存在于我的容器上。它们不在我的本地文件夹中。如何动态地使在容器上创建的文件在本地显示以进行修改

我认为docker的一项伟大工作就是不在本地应用程序文件夹中安装node_模块。。如果是这样的话,可能我错了。请纠正我,您可以使用它与容器和主机共享文件

大概是这样的:

docker run ... -v /path/on/host:/path/in/container ...
或者,如果您使用的是docker compose,请参阅

...
volumes:
  - /path/on/host:/path/in/container