我正在将Docker迁移到Podman,当npm调用时,别名not正在工作。
我在我的env别名上添加了:
alias docker='podman'
alias docker-compose='podman-compose'为了测试别名,我运行了docker-compose up --build并使用podman-组合正确地工作,就像预期的那样。
我的package.json上有:
"scripts": {
"start": "docker-compose up --build",
...当我运行npm运行启动时,这是输出:
❯ npm run start
> project@1.0 start
> docker-compose up --build
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?我又做了一次测试,将docker-compose更改为package.json文件上的podman-compose,并进行了工作。
预期行为
认得env别名。就像我直接在终端上运行命令一样。
复制步骤
alias docker='podman'
alias docker-compose='podman-compose'docker-compose.
"scripts": {
"start": "docker-compose up --build",
...npm run start环境
8.13.2
❯ npm config ls
; node bin location = /Users/XPTO/.nvm/versions/node/v14.19.3/bin/node
; node version = v14.19.3
; npm local prefix = /Users/XPTO
; npm version = 8.13.2
; cwd = /Users/XPTO
; HOME = /Users/XPTO
; Run `npm config ls -l` to show all defaults.发布于 2022-07-13 22:17:06
可能npm在不存在别名的不同用户下运行。通过在开始脚本中添加id命令来检查它。另一个猜测:在一个新的终端窗口中运行它来重新加载用户环境。
发布于 2022-07-20 13:08:48
这是解决办法。
检查是否将脚本-shell设置为终端。
要检查,只需使用命令npm config ls -l
...
script-shell = null
searchexclude = ""
searchlimit = 20
searchopts = ""
searchstaleness = 900
shell = "/bin/zsh"
...如果您的“script- shell”值为null,则使用以下命令npm config set script-shell zsh ( zsh是macOS Catalina默认终端)将该值设置为默认终端,如果您不介意为每个项目更改shell,那么在这里应该可以做到这一点。如果您希望更具体一些,可以将--location=project添加到该命令中,然后在您的项目中创建一个.npmrc文件,并且该设置只适用于该项目。
在这里,来源:https://github.com/npm/cli/issues/5153#issue-1302253170
https://stackoverflow.com/questions/72970524
复制相似问题