我正在将 Docker 迁移到 Podman,但当 npm 调用时别名不起作用。
我添加了我的环境别名:
alias docker='podman'
alias docker-compose='podman-compose'
为了测试别名,我运行了 docker-compose up --build
并使用 podman-compose 正常工作,如预期的那样。
我的 package.json 上有:
"scripts": {
"start": "docker-compose up --build",
...
当我运行npm run start时,这是输出:
❯ npm run start
> <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="661614090c03051226574856" rel="noreferrer noopener nofollow">[email protected]</a> start
> docker-compose up --build
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
我又做了一次测试,将 package.json 文件上的 docker-compose 更改为 podman-compose 并且也可以工作。
预期行为
识别 env 别名。就像我直接在终端上运行命令时发生的情况一样。
重现步骤
- 在 docker 名称上设置 podman 别名。
alias docker='podman'
alias docker-compose='podman-compose'
- 在 package.json 上添加脚本以使用 docker-compose。
"scripts": {
"start": "docker-compose up --build",
...
- 运行 npm 脚本。
npm run start
环境
- npm:8.13.2
- Node.js:v14.19.3
- 操作系统名称:macOS 12.4(蒙特利)
- 系统型号名称:Macbook Pro M1
- npm 配置:
❯ 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.
最佳答案
我完全删除了 docker,并添加到/usr/local/bin/docker:
#!/bin/bash
podman "$@"
和/usr/local/bin/docker-compose:
#!/bin/bash
podman-compose "$@"
关于node.js - NPM docker 命令不会被别名 podman 覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72970524/