我如何构建具有与基本图像相同标签的Docker映像



我有一种情况,我想从某些基本图像中创建一个docker映像(就像您一样),我正在寻找某种方法来保存基本图像标签。

让我详细说明一个例子。

我想使用此Dockerfile构建一个新的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,就像原始基本图像一样。

我知道我可以在构建完成后简单地从命令行中标记它,但是我正在寻找某种方式(如果存在):

  • "提取"此标签从dockerfile中,因此我可以在docker build -t选项中使用它
  • 将一些变量传递到可以代替5.5.2图像标签
  • 的Dockerfile中

感谢您的帮助&创意!

您需要在docker文件中使用构建参数

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 .....

最新更新