1

有没有办法将 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 并在那里开始依赖构建。

4

1 回答 1

0

您可以尝试使用 ENV 变量,或 args 构建 docker 文件

于 2021-08-05T12:03:41.930 回答