使用Docker制作镜像时,如何包装原始公共Dockerfile以管理构建参数等

我对Docker和相关技术非常陌生,所以我想知道我是否可以在使用公共Docker.Hub映像(我在FROM指令中使用)构建自己的容器时动态更改它们,类似于厨师 chef-rewind 做的那样?

例如,如果我需要向 openresty/latest-centos 传递构建参数来构建它而不需要使用的模块。 我需要把下面这个指令放在我的Dockerfile中,还需要做什么才能仅使用我需要的模块构建openresty呢?

 FROM openresty/latest-centos
点赞
用户147356
用户147356

当你在 Dockerfile 中使用 FROM 指令时,你只是简单地指示 Docker 使用命名的镜像作为将使用 Dockerfile 构建的镜像的基础。这不会导致基础镜像被重新构建,因此没有办法向构建过程“传递参数”。

如果 openresty 镜像不符合你的需求,你可以:

  • 克隆 openresty Git 仓库
  • 修改 Dockerfile
  • 运行 docker build ... 来构建你自己的镜像

或者你可以节省那些工作,直接使用现有镜像并忍受一些未使用的模块。如果模块是单独的组件,你还可以在 Dockerfile 中发出必要的命令来删除它们。

2016-08-04 13:29:50