遇到一个问题:创建新文件将触发我的撰写监视操作,但在同一目录中编辑和保存文件则不会。
使用我的 IDE (Intellij IDEA) 或记事本编辑和保存文件不会触发我的手表操作,但创建新文件或将字符串回显到现有文件中会触发我的手表操作。不太确定 echo 在幕后实际如何工作,如果它像 vim 一样并创建一个隐藏的交换文件(这显然会创建一个新文件)并触发该操作,那就有意义了。
这是我的 compose.yaml 的样子:
services:
db:
image: postgres:latest
env_file:
- .env
ports:
- 5432:5432
volumes:
- db:/var/lib/postgresql/data
networks:
- backend
backend:
build: .
develop:
watch:
- action: rebuild
path: ./project-planner-api/
target: /project-planner-api/
image: bellsoft/liberica-runtime-container:jdk-17-glibc
env_file:
- ./project-planner-api/.env
ports:
- 3000:3000
networks:
- backend
depends_on:
- db
command:
./gradlew bootRun
volumes:
db:
driver: local
networks:
backend: {}
还有 dockerfile:
FROM bellsoft/liberica-runtime-container:jdk-17-glibc
USER backend
WORKDIR /project-planner-api
COPY --chown=backend:backend ./project-planner-api .
EXPOSE 3000
我正在尝试为我的团队设置一个开发环境以用于新项目。我已经尝试过使用 spring devtools 进行热重载,但这需要你的 IDE 每次在接受更改之前都进行重建,我觉得这有点违背了创建 docker 环境的目的。我使用 docker 的原因是我们不需要担心谁在运行什么,也不需要让人们安装和设置 postgres 以及特定的 jdks。目前,如果我将新文件添加到 /project-planner-api/ 目录,它将重建,并且速度足够快,足以让我满意。只是不处理编辑文件。