我想知道是否可以在docker中使用env变量?原因是控制标记.例如,假设我在Dockerfile中有这一行:
From myApp
Run Code Online (Sandbox Code Playgroud)
我想要的是这个:
From myApp:${VERSION}
Run Code Online (Sandbox Code Playgroud)
我可以这样说 docker build . myApp --build-arg VERSION=9
为此应用程序构建docker镜像的过程是相同的.我不想让几乎相同的Dockerfiles使用不同的基本图像.如果我想构建版本9,它应该使用基本图像的版本9.
Had*_*OMA 18
引用此链接 :
如果有人来这里寻找答案,现在可以做到这一点:https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
Man*_*gor 16
至少对于这个 docker 版本,这是可行的
docker --version
docker version 18.09.8, build bfed4f5
Run Code Online (Sandbox Code Playgroud)
它需要 Dockerfile 中的预设变量,例如
ARG TAG=latest
FROM traefik:${TAG}
Run Code Online (Sandbox Code Playgroud)
然后您可以使用以下内容覆盖此预设
docker build --build-arg "TAG=2.2.8" -t my-app:$TAG
Run Code Online (Sandbox Code Playgroud)
在构建期间不会显示版本号。如果你想测试它是否有效,请参考一个不存在的版本 - 它会失败:manifest my-app:version not found。
| 归档时间: |
|
| 查看次数: |
6748 次 |
| 最近记录: |