ember.js 发生系统错误:uv_os_get_passwd返回ENOENT(无此类文件或目录)

jyztefdp  于 2022-11-05  发布在  其他
关注(0)|答案(2)|浏览(161)

我有一个jenkin管道,它运行在一个docker代理,当我运行ember建设我得到这个错误。任何想法我应该怎么做。我用

image 'node:latest'

我得到了这个错误

+ ./node_modules/.bin/ember build --env production
WARNING: Node v14.3.0 is not tested against Ember CLI on your platform. We recommend that you use the most-recent "Active LTS" version of Node.js. See https://git.io/v7S5n for details.
Could not start watchman
Visit https://ember-cli.com/user-guide/#watchman for more info.
Building
A system error occurred: uv_os_get_passwd returned ENOENT (no such file or directory)
eqqqjvef

eqqqjvef1#

我需要做的就是添加从/etc/passwd到/etc/passwd的docker卷Map。

agent {
        docker { 
            image 'node:12'
            args "-v /etc/passwd:/etc/passwd"
            reuseNode true
        }

}
omhiaaxx

omhiaaxx2#

在容器中使用node-gyp时,此问题可能会掩盖另一个缺少路径或路径为只读的问题。
os.userInfo()用法是eaccesFallback的一部分,只有在无法访问文件路径时才应调用eaccesFallback。
打开详细日志记录(npm_config_loglevel=verbose)以记录无法访问的路径,并改为挂载/修复该路径。
根据我的经验,这修复了底层问题,并避免了挂载/etc/passwd,而挂载/etc/passwd可能并不总是可能的,或者可能被认为是不安全的。
当我使用electron-builder时,我在k8s pod中特别看到了这一点,并且不得不为.electron-gyp文件夹创建一个空卷挂载:

volumeMounts:
  - name: electron-cache
    mountPath: /.electron-gyp
  volumes:
  - name: electron-cache
    emptyDir: {}

相关问题