node.js - NPM docker 命令不会被别名 podman 覆盖

标签 node.js docker npm docker-compose podman-compose

我正在将 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 别名。就像我直接在终端上运行命令时发生的情况一样。

重现步骤

  1. 在 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/

    相关文章:

    node.js - nodeJS何时以及如何释放堆内存?

    php - 如何保护 Node App 免受直接访问和安装 Node 的正确方法

    javascript - 仅在第一次请求后发送后无法设置 header

    mysql - 启动后在 mySQL 容器中播种数据

    docker - 使用 compose 重新创建命名卷

    node.js - 在 Docker 构建中找不到 TSC

    npm - 使用派生的NPM软件包作为替换在devDependencies中使用相同名称进行替换

    node.js - 让 Node.js 正常工作

    javascript - Uncaught Error : [vuex] getters should be function but "getters.default" is {}

    node.js - 我在安装 Cordova 时遇到错误