docker从S3 bucket编写更新

docker从S3 bucket编写更新,docker,Docker,我们的Dockerfile调用一个python脚本,该脚本将二进制文件从S3复制到/usr/bin。这在第一次使用时效果很好。但从那时起,docker compose build什么都不做,因为所有内容都被缓存了。如果二进制文件已更改,则这是一个问题 除了没有缓存的构建之外,确保docker compose构建始终拾取新二进制文件(如果有)的最佳方法是什么。我们不介意它不必要地下载二进制文件,即使没有更改,只要它工作,那么二进制文件已经更改 似乎我们想要一个始终执行的Dockerfile步骤 F

我们的Dockerfile调用一个python脚本,该脚本将二进制文件从S3复制到/usr/bin。这在第一次使用时效果很好。但从那时起,docker compose build什么都不做,因为所有内容都被缓存了。如果二进制文件已更改,则这是一个问题

除了没有缓存的构建之外,确保docker compose构建始终拾取新二进制文件(如果有)的最佳方法是什么。我们不介意它不必要地下载二进制文件,即使没有更改,只要它工作,那么二进制文件已经更改

似乎我们想要一个始终执行的Dockerfile步骤

FROM ubuntu:trusty

RUN apt-get update
RUN apt-get -y install software-properties-common
RUN apt-get -y install --reinstall ca-certificates
RUN add-apt-repository ppa:fkrull/deadsnakes

RUN apt-get update && apt-get install -y \
    curl \
    wget \
    vim \
    git \
    python3.5 \
    python3-pip \
    python3-setuptools \
    libpcap0.8-dev

RUN ln -sf /usr/bin/python3.5 /usr/bin/python3

ADD . /app
WORKDIR /app

# Install Python Requirements
RUN pip3 install -r etc/python/requirements.txt

# Download/Install processor and associated libs
RUN python3 setup_processor.py

RUN mkdir -p /logs

ENTRYPOINT ["/app/entrypoint.sh"]

其中setup_processor.py直接从S3下载到/usr/bin。

,因此目前还没有类似的直接功能。但您的解决方案有一个变通方法

在下载步骤之前添加构建参数

ARG BUILD_ON=now
# Download/Install processor and associated libs
RUN python3 setup_processor.py
在构建图像时,请使用下面的

docker build --build-arg BUILD_ON=$(date) ....
这将始终确保您在ARG步骤中得到更改,之后的所有步骤缓存都将无效

已经请求了一个功能,并且正在下面的线程上进行处理


张贴你的Dockerfile@TarunLalwani在上面添加了dockerfile。