小编Sha*_*ota的帖子

在 git root 子目录下的 Docker 容器中以 --watch 模式运行 Jest

我已经构建了一个具有以下文件结构的 Web 项目:

-root_folder/
  -docker-compose.yml
  -.git/
  -backend/
    -.dockerignore
    -docker/
      -dev.dockerfile
  -frontend/
    -.dockerignore
    -docker/
      -dev.dockerfile
Run Code Online (Sandbox Code Playgroud)

我在 Docker 容器中运行前端应用程序 (Angular)。我还在另一个容器中运行后端应用程序 (ExpressJS),但后端与我的问题无关。

我已将卷 ./frontend 安装到容器中的 /app 以允许热重新加载。

这个配置可以很好地运行 Angular。但是,当运行带有 --watch 标志的 Jest 时,它给出了错误--watch is not supported without git/hg, please use --watchAll

我回到 dockerfile 并添加:

RUN apk update -q && \
    apk add -q git
Run Code Online (Sandbox Code Playgroud)

但这并不能解决问题。从我所做的所有研究来看,问题似乎是 Jest 监视模式以某种方式使用 git 来检测更改,但我的 git 文件夹不在“前端”子目录中。

我试图修改我的容器以将所有文件复制到 /app/frontend ,然后也复制并挂载 .git 文件夹到 /app/.git 但这没有效果。

我不想用 --watchAll 运行 Jest(但我测试了它并且运行正常)。有什么建议?

编辑回答了我自己的问题。我在安装 .git 文件夹时走在正确的轨道上。缺少的步骤是设置 GIT_WORK_TREE 和 GIT_DIR 环境变量。

git node.js docker jestjs

2
推荐指数
1
解决办法
1573
查看次数

标签 统计

docker ×1

git ×1

jestjs ×1

node.js ×1