我想克隆一个git仓库,通过Dockerfile
在RUN
中安装一个新的neos.io或类似的东西。稍后,我想将包含文件的目录挂载到本地文件系统中。
根据{{3}},由于
安装卷将删除数据。
如何存档想要的行为?使用CMD
或ENTRYPOINT
将克隆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
答案 0 :(得分:0)
您可以将存储库克隆到任意目录,例如说/home/app-clone
,然后在您的ENTRYPOINT
或CMD
中,将文件从该目录复制到卷目录,因此像这样:
.
.
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