【问题标题】:Using Husky with Docker when no Node.js is available in local当本地没有可用的 Node.js 时将 Husky 与 Docker 一起使用
【发布时间】:2020-07-15 19:37:11
【问题描述】:

使用 Docker,当容器中有 Node.js 而本地机器上没有 Node.js 时,我试图让 Husky 工作。

因为它将由 git 命令触发,来自here 的信息:“如果你在终端中运行 git 命令,husky 将使用你的 shell PATH 中定义的版本”,以及这个@987654322 @: "如果 ~/.huskyrc 文件存在,Husky 将在运行钩子脚本之前获取它。您可以使用它,例如,加载节点版本管理器或在钩子之前运行一些 shell 命令。"

是否可以更改PATH 使其指向容器中的Node.js 之类的解决方案?如果可以,怎么做?

提前致谢!

【问题讨论】:

    标签: node.js docker githooks husky git-husky


    【解决方案1】:

    如果我没听错的话,我分两步解决了这个问题:

    1. 通过与来宾共享主机的 git
    # at docker-compose.yaml
    version: '3'
    services:
        app:
            build:
            ...
            volumes:
                - /usr/bin/git:/usr/bin/git
                # installing dependencies missing at guest (in my case, guest debian, host ubuntu)
                - /lib/x86_64-linux-gnu/libpcre2-8.so.0:/lib/x86_64-linux-gnu/libpcre2-8.so.0
    

    和 2.通过在容器内运行hook命令,例如:

    # at .husky/pre-commit
    
    #!/bin/sh
    . "$(dirname "$0")/_/husky.sh"
    
    # instead of only npx lint-staged
    docker exec great-app npx lint-staged 
    
    

    【讨论】:

      猜你喜欢
      • 2019-03-10
      • 1970-01-01
      • 1970-01-01
      • 2022-08-21
      • 1970-01-01
      • 2020-08-22
      • 1970-01-01
      • 2021-01-02
      • 2013-05-22
      相关资源
      最近更新 更多