我有一种情况,我想从某些基本图像中创建一个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 .....