【发布时间】:2018-09-22 21:18:06
【问题描述】:
在我的Dockerfile 中,我想运行一个命令来执行一个 bash 脚本,该脚本获取从文件中读取的传递参数。
在plugins.txt 中指定了一个插件(完整文件内容:configuration-as-code),但 bash 脚本根本没有收到任何参数。
但由于我发现了如何在 blog post 上安装插件的这种方式,我认为它应该按原样工作。
COPY plugins.txt /usr/share/jenkins/ref/plugins.txt
COPY install-plugins.sh /usr/local/bin/install-plugins.sh
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/plugins.txt
安装程序脚本以以下行开头并以 Usage /usr/local/bin/install-plugins.sh plugin1 plugin 2 ... 退出
#!/bin/bash
set -e
if [ $# -eq 0 ]; then
echo "USAGE: $0 plugin1 plugin2 ..."
exit 1
fi
如何正确地将文件plugins.txt 的内容传递给脚本?
编辑
我找到了正确传递参数的解决方案。有人知道为什么最初的尝试是错误的吗?
它适用于:
RUN /usr/local/bin/install-plugins.sh $(cat /usr/share/jenkins/ref/plugins.txt)
【问题讨论】:
标签: bash ubuntu dockerfile