【问题标题】:How I can find file downloaded from s3 in Docker container?如何在 Docker 容器中找到从 s3 下载的文件?
【发布时间】:2020-08-30 12:53:20
【问题描述】:

我正在编写 Dockerfile,其中尝试使用 aws cli 将文件从 s3 下载到本地,并将这些文件添加到 docker 容器中,如下所示 this page

FROM nrel/energyplus:8.9.0

RUN apt-get update && \
    apt-get install -y \
        python3 \
        python3-pip \
        python3-setuptools \
        groff \
        less \
    && pip3 install --upgrade pip \
    && apt-get clean

RUN pip3 --no-cache-dir install --upgrade awscli

ADD . /var/simdata
WORKDIR /var/simdata

ARG AWS_ACCESS_KEY_ID
ARG AWS_SECRET_ACCESS_KEY
ARG AWS_REGION=ap-northeast-1

RUN aws s3 cp s3://file/to/path .

RUN mkdir -p /var/simdata

ENTRYPOINT [ "/bin/bash" ]

运行docker build -it <container id>后,我希望我能在容器中找到从s3下载的文件,但我找不到。
有谁知道我在哪里可以找到从 s3 下载的这个文件?

【问题讨论】:

    标签: docker amazon-s3 aws-cli


    【解决方案1】:

    文件应该在 /var/simdata 中。

    由于您在从 s3 下载文件之前没有更改工作目录,因此您的图像使用 nrel/energyplus:8.9.0 默认工作目录。

    $ docker pull nrel/energyplus:8.9.0
    $ docker inspect --format '{{.ContainerConfig.WorkingDir}}' nrel/energyplus:8.9.0
    /var/simdata
    

    【讨论】:

    • 您能否补充信息如何将 s3 文件中的文件复制到我构建的容器中?更具体地说,我想将文件从 s3 复制到容器中的 /var/simdata 中。我试图在从 s3 下载文件之前更改工作目录,如 Dockerfile 上所示。但我仍然找不到从 s3 下载的文件
    【解决方案2】:

    更好的方法是将文件从 s3 下载到本地,然后在 Dockerfile 中将该文件复制到 /var/simdata

    COPY file /var/simdata/file
    

    这会给你更多的控制权。

    【讨论】:

      猜你喜欢
      • 2017-07-24
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-18
      • 1970-01-01
      • 2022-10-08
      • 1970-01-01
      相关资源
      最近更新 更多