我有一种情况,我想从一些基础镜像创建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
结尾,就像原始基础图像一样。我知道构建完成后就可以从命令行中对其进行标记,但是我正在寻找某种方法(如果存在):
docker build -t
选项5.5.2
图像标签感谢您的帮助和想法!
最佳答案
您需要在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 .....
关于docker - 如何构建与基础镜像具有相同标签的Docker镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46070018/