克隆 git 不在 Docker 卷中?

Cloned git not in Docker Volume?

我使用以下 Dockerfile:

FROM centos
VOLUME ["apitests"]
RUN su
RUN yum -y install git
RUN git clone https://github.com/Human-Connection/CUBE-arduino-yun.git /apitests/

然后我建立我的形象

docker build -t apitesting .

并启动一个带有 shell

的容器
docker run -ti apitesting /bin/bash

现在我在容器中找到 /apitests。 但是我找不到克隆的 git 数据。

我做错了什么?

在数据存在后定义VOLUME。 Docker 自动用图像中的任何内容填充 VOLUME。一开始 /apitests 是空的。

FROM centos
RUN yum -y install git
RUN git clone https://github.com/Human-Connection/CUBE-arduino-yun.git /apitests/
VOLUME ["apitests"]

另外,RUN su 因为它自己的步骤什么都不做。每个 RUN 在它自己的容器中启动。 RUN 步骤之间唯一保留的是写入磁盘并随后提交到图像层的内容。

这对我有用:在您的目录中创建 + 加载数据后定义卷。

FROM centos
RUN yum -y install git
RUN mkdir /apitests
RUN git clone https://github.com/Human-Connection/CUBE-arduino-yun.git /apitests/
VOLUME /apitests