【问题标题】:Docker node app won't bind with hostDocker 节点应用程序不会与主机绑定
【发布时间】:2018-08-10 23:42:24
【问题描述】:

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

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

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

任何帮助表示赞赏。谢谢!

【问题讨论】:

标签: node.js docker docker-compose


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2022-06-29
    • 2020-10-31
    • 2015-08-21
    • 2018-03-04
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 2019-10-30
    • 2020-10-11
    相关资源
    最近更新 更多