You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器中从URL运行.sh脚本报错,NordVPN安装求助

解决Docker容器中运行NordVPN安装脚本的语法错误问题

问题原因

  • 第一个错误:<()是Bash专属的进程替换语法,Docker的RUN指令默认使用/bin/sh(不支持该语法),因此触发Syntax error: "(" unexpected。
  • 第二个错误:sh < curl ...是误用重定向符号的写法,<会让系统把curl当成文件名尝试读取,而非执行curl命令下载脚本,所以出现cannot open curl: No such file。

解决方案

两种方法任选其一即可:

方法1:用管道传递脚本内容(推荐,兼容性更强)

直接通过管道将curl下载的脚本内容传给sh执行,sh完全支持这种语法:

# install nordvpn
RUN curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh | sh

方法2:指定Bash执行命令

如果想保留进程替换的写法,可以让RUN调用Bash来执行(Bash支持<()语法):

# install nordvpn
RUN bash -c 'sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh)'
# 也可以简化成直接用Bash运行脚本
RUN bash <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh)

额外提示

Docker容器默认以root用户运行,你Redis安装命令里的sudo可以去掉,不影响安装效果还能简化命令。

内容的提问来源于stack exchange,提问作者Cody Nolf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 07:05:14