我有一个案例,我希望从一些基础图像创建一个泊坞窗图像,在此过程中进行一些修改(就像你一样),我正在寻找一些方法来保留基本图像标记。
让我举一个例子。
我想用这个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
图像标记感谢您的帮助&想法!
答案 0 :(得分: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 .....