有没有办法将 WORKDIR 更改为第一个模式匹配的文件夹?就像是
SHELL ["/bin/bash", "-c"]
RUN pattern=mypattern*
RUN files=( $pattern )
WORKDIR $files
与我的本地终端行为不同,文件变量保持为空,尽管当前的 WORKDIR 是正确的,并且该文件夹基于 docker 构建日志肯定存在。
编辑:为了澄清,用例是:
有一个 Go 包 (lilliput) 附带预构建的二进制文件,但这些二进制文件在我们的 docker 想象将运行的平台上不起作用。值得庆幸的是,这个包build_deps.sh
为这种情况提供了一个,但这必须从包安装文件夹中执行。这个文件夹将根据包的发布版本有一个任意的名称(例如lilliput@v0.0.0-20210720001558-e1547514bd5f
)目标是模式匹配这个文件夹lilliput*
,切换 WORKDIR 并在那里开始依赖构建。