如何构build与基础图像具有相同标记的泊坞窗图像?

我有一个案例,我想从一些基础图像创build一个泊坞窗图像做一些沿途的修改(和你一样),我正在寻找一些方法来保存基本的图像标签。

让我以一个例子来阐述。

我想用这个Dockerfilebuild立一个新的logstash镜像:

FROM docker.elastic.co/logstash/logstash:5.5.2 RUN /opt/logstash/bin/logstash-plugin install logstash-input-jdbc RUN mkdir /opt/logstash/vendor/jdbc RUN curl -Lo /opt/logstash/vendor/jdbc/postgresql-42.1.1.jar https://jdbc.postgresql.org/download/postgresql-42.1.1.jar 

我希望得到的图像也最终以标签5.5.2 ,就像原始的基础图像。

我知道我可以简单地从命令行标记一旦构build完成,但我正在寻找某种方式(如果存在),要么:

  • 从Dockerfile中“提取”这个标签,所以我可以在docker docker build -t选项中使用它
  • 将一些variables传入Dockerfile中,可以用来代替5.5.2图片标签

感谢您的帮助和想法!

你需要在你的docker文件中使用构build参数

 ARG LOGSTASH_VERSION FROM docker.elastic.co/logstash/logstash:${LOGSTASH_VERSION} RUN /opt/logstash/bin/logstash-plugin install logstash-input-jdbc RUN mkdir /opt/logstash/vendor/jdbc RUN curl -Lo /opt/logstash/vendor/jdbc/postgresql-42.1.1.jar https://jdbc.postgresql.org/download/postgresql-42.1.1.jar 

然后使用docker build命令行传递值

 docker build --build-arg LOGSTASH_VERSION=5.5.2 .....