使用环境variables创buildDockerfile
我正在尝试创build一个Docker镜像,为用户运行一个命令。 该命令将需要一些variables条目,特定于运行它的人员。 我尝试用variables简单地创build它,并且因为命令不能在构build时运行,所以该过程不会完成。 然后我尝试使用'$ {varname: – 可能的值},并且我进一步了一点。
我猜这个问题的一部分可能是一些variables是URL,因为文件夹名称,也是一个variables,正在接受。 我曾尝试添加转义字符('\')到URL中的所有特殊字符,所做的只是给我一个“错误的替代”错误。
那么,我应该改变我的语法吗?
RUN /usr/bin/java -jar export.jar calendar \ --output /var/www \ --format public \ --restUri ${one_uri:-http://my.site:8080/subdir/restservice} \ --daysForward ${days_forward:-30}
如果你的用户正在构build他们自己的Dockerfile,或者他们直接使用你的Docker镜像,但是如果他们自己创build了ONBUILD
,那么你可以使用ONBUILD
运行一个命令,当用户docker build
它们的容器时,我不会完全知道。
https://docs.docker.com/reference/builder/#onbuild
其他
你可以像这样指定你自己的默认值
ENV days_forward "30"
然后当他们运行你的容器时,他们可以很容易地覆盖那个环境variables。