docker_practice/image/dockerfile/arg.md

10 lines
1.1 KiB
Go
Raw Normal View History

### ARG 构建参数
格式`ARG <参数名>[=<默认值>]`
2017-02-18 13:02:39 +00:00
构建参数和 `ENV` 的效果一样都是设置环境变量所不同的是`ARG` 所设置的构建环境的环境变量在将来容器运行时是不会存在这些环境变量的但是不要因此就使用 `ARG` 保存密码之类的信息因为 `docker history` 还是可以看到所有值的
`Dockerfile` 中的 `ARG` 指令是定义参数名称以及定义其默认值该默认值可以在构建命令 `docker build` 中用 `--build-arg <参数名>=<值>` 来覆盖
1.13 之前的版本要求 `--build-arg` 中的参数名必须在 `Dockerfile` 中用 `ARG` 定义过了换句话说就是 `--build-arg` 指定的参数必须在 `Dockerfile` 中使用了如果对应参数没有被使用则会报错退出构建 1.13 开始这种严格的限制被放开不再报错退出而是显示警告信息并继续构建这对于使用 CI 系统用同样的构建流程构建不同的 `Dockerfile` 的时候比较有帮助避免构建命令必须根据每个 Dockerfile 的内容修改