【发布时间】: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
任何帮助表示赞赏。谢谢!
【问题讨论】:
-
感谢@alvits,但这不正是此页面上的 docker-compose.yml 所做的吗? github.com/BretFisher/node-docker-good-defaults
标签: node.js docker docker-compose