bash - 为什么“bash <(wget -qO- https://example.com)”不能与 docker 的 RUN 命令一起使用?但是可以从手动使用的主机或容器中工作吗?
问题描述
我创建了一个简单的 vim 发行版,并使用如下命令将其手动安装在本地计算机或 docker 内:
bash <(wget -qO- https://raw.githubusercontent.com/sensorario/newdots/master/install.sh)
该脚本有效。但我也想在 Dockerfile 中执行它。试图简单地添加:
RUN bash <(wget -qO- https://raw.githubusercontent.com/sensorario/newdots/master/install.sh)
我有
=> ERROR [ 9/10] RUN bash <(wget -qO- https://raw.githubusercontent.com/sensorario/newdots/master/install.sh) 0.3s
------
> [ 9/10] RUN bash <(wget -qO- https://raw.githubusercontent.com/sensorario/newdots/master/install.sh):
#12 0.321 /bin/sh: 1: Syntax error: "(" unexpected
------
executor failed running [/bin/sh -c bash <(wget -qO- https://raw.githubusercontent.com/sensorario/newdots/master/install.sh)]: exit code: 2
ERROR: Service 'php' failed to build : Build failed
make: *** [recreate] Error 1
然后我想在\
之前添加(
。
RUN bash <\(wget -qO- https://raw.githubusercontent.com/sensorario/newdots/master/install.sh\)
新的错误是
=> ERROR [ 9/10] RUN bash <(wget -qO- https://raw.githubusercontent.com/sensorario/newdots/master/install.sh) 0.3s
------
> [ 9/10] RUN bash <(wget -qO- https://raw.githubusercontent.com/sensorario/newdots/master/install.sh):
#12 0.310 /bin/sh: 1: cannot open (wget: No such file
stackoverflow 中的其他问题(和答案)对我没有帮助。
解决方案
RUN
使用 执行命令sh
,但进程替换 with<(
是bash
扩展名。
使用普通管道
RUN wget -qO- https://raw.githubusercontent.com/sensorario/newdots/master/install.sh | bash
推荐阅读
- python - 对 python 代码进行故障排除以抓取和存储 PDF 文本
- python - penup() 第一次通过 for 循环
- javascript - VueJS3 + Typescript - 从输入文件中读取文件
- firebase - 无法从控制台创建 Firebase 云消息
- javascript - JSON Web 令牌 (JWT) 安全吗?
- python - 如何更改 python 文件单元格 VS Code 的背景?
- ios - 本机 iOS Unity 集成 - AppStore 配置文件导致找不到“UnityFramework/UnityFramework.h”文件
- r - 从 SF 数据框中排除外岛
- debezium - Debezium Server 并在 application.properties 文件中使用变量
- javascript - wavesurfer.js 的 Regions 插件根本不工作