Docker节点应用不会与主机绑定

时间:2018-08-10 00:18:28

标签: node.js docker docker-compose

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

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

enter image description here

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

服务器/.dockerignore:

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

感谢您的帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

在Github上找到this sample project之后,我就能完成我想要的事情。在绑定安装中查看docker-compose.yml的正确语法。