在Dockerfile中下载数据并批量使用

时间:2019-01-05 22:57:54

标签: docker docker-compose dockerfile

我想克隆一个git仓库,通过DockerfileRUN中安装一个新的neos.io或类似的东西。稍后,我想将包含文件的目录挂载到本地文件系统中。 根据{{​​3}},由于  安装卷将删除数据。

如何存档想要的行为?使用CMDENTRYPOINT将克隆git repo f。在每个开始。没必要。

Dockerfile

FROM debian:stable

RUN apt-get update \
  && apt-get install -y git

WORKDIR /home/app

RUN git clone https://github.com/libgit2/libgit2

CMD ["sleep", "infinity"]

docker-compose.yml

version: "2"
services:
  app:
    build: .
    # Uncomment this will remove data on docker-compose up
    # volumes:
    #   - ./app:/home/app

2 个答案:

答案 0 :(得分:0)

您可以将存储库克隆到任意目录,例如说/home/app-clone,然后在您的ENTRYPOINTCMD中,将文件从该目录复制到卷目录,因此像这样:

.
.
RUN git clone https://github.com/libgit2/libgit2 /home/app-clone
CMD cp -r /home/app-clone /home/app && sleep infinity

答案 1 :(得分:0)

Dockerfile

FROM debian:stable

RUN apt-get update \
  && apt-get install -y git

WORKDIR /home/app

RUN git clone https://github.com/libgit2/libgit2.git

CMD ["cp", "-r", "libgit2", "/tmp"]

docker-compose.yml

version: "2"
services:
  app:
    build: .
    volumes:
      - ./app:/tmp