即使我没有做任何更改,Docker也会从第一个ADD重新构建我的映像,每次 。
这很简单:
FROM alpine:3.8
RUN apk add --no-cache openjdk8-jre
RUN mkdir /cassandra
ADD https://archive.apache.org/dist/cassandra/3.9/apache-cassandra-3.9-bin.tar.gz /tmp/cassandra.tar.gz
RUN tar -xf /tmp/cassandra.tar.gz -C /cassandra && rm /tmp/cassandra.tar.gz
EXPOSE 9042
每次我构建时,它都会继续运行ADD及其之后的所有内容。 ADD大约需要一段时间,所以非常困难。
答案 0 :(得分:0)
Docker不确定链接是否已更改,它无法检查请求的内容。 (我的意思是,它可以检查内容的哈希,但仍然必须下载文件)。您应该自己下载文件,然后将其直接复制到内部版本中。
一些讨论:https://github.com/moby/moby/issues/3672#issuecomment-63335989
答案 1 :(得分:0)
解决方案是使用
apk add --no-cache wget && \
wget your_website.html && \
..
Do some stuff
..
apk del --no-cache wget
这完全满足了 I 的需求。每次都有ADD重新下载,根据@maxm的链接,我们似乎无能为力