我有一个资产需要复制到docker镜像,但我的位置我事先不知道:我需要运行一个shell命令来找到它:
where-is-my-asset
如何将它与Dockerfile中的COPY
命令结合使用?通常我会这样做:
COPY app.json /usr/src/app
但现在我需要这样做:
COPY `where-is-my-asset` /usr/src/app
答案 0 :(得分:4)
ARG
将允许您为构建定义动态参数,但我不相信您可以在Dockerfile
中运行命令来填充参数。
你可以事先找到它。使用像...这样的Dockerfile。
FROM busybox
ARG assetfile
COPY $assetfile /somehwere
然后运行
docker build --build-arg assetfile="$(where-is-my-asset)" .
与在shell中执行此操作没有太大区别。
cp "$(where-is-my-asset)" .
docker build .