使用环境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。