提问人:thomas prevost 提问时间:11/15/2023 最后编辑:thomas prevost 更新时间:11/15/2023 访问量:24
如何使用 Docker 在 Angular/Spring-Boot 应用程序中启用热重载?
How to enable hot reload in an Angular/Spring-Boot app using Docker?
问:
我正在使用 Angular 和 Spring-boot 构建一个全栈应用程序。由于我已将应用程序添加到 Docker,因此在修改代码时它不会重新加载。
这是我docker-compose.yml:
version: '3.7'
services:
db:
container_name: MyApp-db
image: mysql:8.0
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: MyAppDB
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql
adminer:
container_name: MyApp-adminer
image: adminer:4.8.0-standalone
restart: always
ports:
- "9080:8080"
smtp4dev:
image: rnwood/smtp4dev:v3
restart: always
ports:
- "9081:80"
- "9025:25"
api:
build:
context: ./MyApp-backend
dockerfile: Dockerfile
ports:
- "8080:8080"
depends_on:
- db
volumes:
- backend-data:/app
frontend:
build:
context: ./MyApp-frontend
dockerfile: Dockerfile
ports:
- "4200:4200"
depends_on:
- api
volumes:
- frontend-data:/app
volumes:
mysql-data:
backend-data:
frontend-data:
前端的 Dockerfile:
FROM node:18 AS development
WORKDIR /app
COPY package*.json ./
RUN npm install -g node-pre-gyp
RUN npm install
COPY . .
EXPOSE 4200
CMD ["npm", "start", "--", "--poll"]
后端的 Dockerfile:
FROM maven:3.8.4-openjdk-17-slim AS development
WORKDIR /app
COPY . .
EXPOSE 8080
CMD ["mvn", "spring-boot:run"]
当我执行命令“docker-compose up -d --build”时,卷创建得很好,但它们没有检测到代码中的任何修改。如果我修改 Docker 容器内的文件代码,它运行良好。
有人有想法吗?
答: 暂无答案
评论
docker-compose up -d api
npm start -- --poll
volumes:
api
frontend