Node.js Docker节点应用程序赢得';不能与宿主绑定

Node.js Docker节点应用程序赢得';不能与宿主绑定,node.js,docker,docker-compose,Node.js,Docker,Docker Compose,我有一个由mysql数据库和节点应用程序组成的应用程序。我编写了一个docker compose文件,该文件创建并公开了mysql数据库和节点应用程序。我通过将应用程序的所有源文件复制到容器并运行应用程序来实现这一点,但我无法让节点应用程序对主机上的文件更改做出反应。我确实在docker-compose.yml上添加了一个volumes条目,但应用程序对此没有反应 主机上的我的文件夹结构是: web客户端是一个React前端,它还没有涉及到这一点(我一步一个脚印) 文件夹服务器具有节点应用程序

我有一个由mysql数据库和节点应用程序组成的应用程序。我编写了一个docker compose文件,该文件创建并公开了mysql数据库和节点应用程序。我通过将应用程序的所有源文件复制到容器并运行应用程序来实现这一点,但我无法让节点应用程序对主机上的文件更改做出反应。我确实在docker-compose.yml上添加了一个volumes条目,但应用程序对此没有反应

主机上的我的文件夹结构是:

web客户端是一个React前端,它还没有涉及到这一点(我一步一个脚印)

文件夹服务器具有节点应用程序和Dockerfile

服务器/Dockerfile:

FROM node:8

RUN apt-get -q update && apt-get -qy install netcat

WORKDIR /usr/src/app
COPY . .

RUN ls -l
RUN npm install

RUN chmod +x ./wait-for.sh
CMD sh -c './wait-for.sh mysql-db:3306 -- npm start'

EXPOSE 5000
服务器/.dockrignore:

node_modules
npm-debug.log
*Dockerfile*
*docker-compose*
./docker-compose.yml:

version: "3.7"

services:
  mysql-db:
    image: mysql/mysql-server:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_USER: assinaai
      MYSQL_PASSWORD: assinaai
      MYSQL_DATABASE: assinaai
    ports:
      - "3306:3306"
    expose:
      - "3306"
    networks:
      - my-network

  node-app:
    build:
      context: ./server
      dockerfile: Dockerfile
    depends_on:
      - mysql-db
    ports:
      - "5000:5000"
    expose:
      - "5000"
    volumes:
      - "./server:/usr/src/app"
    networks:
      - my-network

networks:
  my-network:
    driver: bridge

感谢您的帮助,谢谢

在Github上找到后,我能够实现我想要的。查看docker-compose.yml以了解绑定挂载的正确语法。

谢谢@alvits,但这不正是本页上docker-compose.yml所做的吗?