使用环境变量创建 Dockerfile
Creating Dockerfile with Environmental Variables
我正在尝试创建一个 docker 图像,它将 运行 用户的命令。该命令将需要一些变量条目,特定于运行宁它的人。我尝试简单地使用变量创建它,但由于构建时命令不能 运行,因此该过程无法完成。然后我尝试使用“${varname:-possible value}”,我得到了更多。
我猜部分问题可能是某些变量是 URL,因为文件夹名称也是一个变量,正在被接受。我确实尝试将转义字符 ('\') 添加到 URL 中的所有特殊字符,但所做的只是给我一个 'bad substitution' 错误。
那么,我应该更改语法吗?
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}
我不太清楚您的用户是在构建他们自己的 Dockerfile 还是他们在直接使用您的 docker 图像,但如果他们创建了自己的图像,那么您可以使用 ONBUILD
来 运行 一个命令,当用户 docker build
他们的容器时。
https://docs.docker.com/reference/builder/#onbuild
其他
您可以像这样指定自己的默认值
ENV days_forward "30"
然后当他们 运行 你的容器时,他们可以很容易地覆盖那个环境变量。
我正在尝试创建一个 docker 图像,它将 运行 用户的命令。该命令将需要一些变量条目,特定于运行宁它的人。我尝试简单地使用变量创建它,但由于构建时命令不能 运行,因此该过程无法完成。然后我尝试使用“${varname:-possible value}”,我得到了更多。
我猜部分问题可能是某些变量是 URL,因为文件夹名称也是一个变量,正在被接受。我确实尝试将转义字符 ('\') 添加到 URL 中的所有特殊字符,但所做的只是给我一个 'bad substitution' 错误。
那么,我应该更改语法吗?
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}
我不太清楚您的用户是在构建他们自己的 Dockerfile 还是他们在直接使用您的 docker 图像,但如果他们创建了自己的图像,那么您可以使用 ONBUILD
来 运行 一个命令,当用户 docker build
他们的容器时。
https://docs.docker.com/reference/builder/#onbuild
其他
您可以像这样指定自己的默认值
ENV days_forward "30"
然后当他们 运行 你的容器时,他们可以很容易地覆盖那个环境变量。