我有一个由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
感谢您的帮助。谢谢!